• 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
没有结果
查看所有结果

页面静态化 地图API、页面静态化

Mr.Lee 由 Mr.Lee
2018年5月19日
在 网站优化, 页面静态化
0
页面静态化 地图API、页面静态化
0
分享
2
浏览

地图API

地图API介绍

地图API所指的就是能够提供地图相关的服务。

对于该服务一般都是通过JavaScript或者其他语言将具体的地图信息嵌入到应用中

例如58中是房子信息会显示出地点的地图信息

地图API除了提供地图显示之外还提供 例如 定位、线路、周边等相关的服务

2.2、腾讯地图的使用

2.2.1、文档查看

①进入到文档

②具体查看文档

2.2.2、具体使用地图

①载入API

②创建地图DOM元素

③创建对象

④初始化地图

2.2.3、根据指定地址显示地图



静态化概述

静态与动态网页

①静态网页

直接以静态的html/shtml等格式直接显示内容的

优点:安全、运行速度快

缺点:工作量大

②动态网页

使用动态语言配合数据库显示内容。

优点:灵活性高、维护工作量小

缺点:与静态网页相对比运行速度慢

什么是静态化

将动态网页显示的内容转换为静态网页来进行显示,而具体转换的过程就是静态化。对于静态化是一个过程。在实现的完成后会产生对于的html静态文件。

静态化优点

  1. 安全性高

对于静态化的html文件不接受任何参数。

  1. 性能更高

对于静态的html文件Apache是直接解析文件响应结果。对于动态的php需要交给PHP引擎解析最后在由Apache响应结果

  1. 加载速度快

浏览器自带缓存功能

  1. 更加符合搜索引擎优化

对于百度、360搜索引擎更加喜欢收录静态的HTML文件

2.4、实现静态化的原理

1、获取解析之后的结果(最终要显示的结果)

2、写入文件(一定要自行设计一个规律写入)

①创建生成html文件的php

②访问

③查看文件

访问效果

对于静态化中的两步骤能够实现就能够实现静态化功能。但是最常用的方式是使用PHP 中的OB缓存实现

静态化适用场景

  1. 适用于更新不是特别频繁的项目。例如行业、新闻门户或者企业项目使用
  2. 可以针对更新较为频繁的项目的首页使用静态化

缓存区

3.1、静态与动态网页解析流程(了解)

3.1.1、静态网页

对于上述流程中将临时存储所读取到文件内容介子叫做程序缓存。程序缓存是一定存在的。不可以手动关闭

3.1.2、动态网页

对于上述流程中涉及到两种缓存系统,一种是程序缓存,另外一种是OB缓存。

3.2、程序缓存

注意案例过程中需要关闭OB缓存。直接修改配置文件注释掉即可

注意重启Apache

①编写案例

②图解

从上述案例结果只能够能够确认一定会存在程序缓存。如果不存在,会导致结果只看到一部分。当代码执行的过程中将一切的输出都放入到程序缓存中也包括header所设置的响应头

当PHP程序执行完毕 Apache需要获取程序缓存中的内容进行封包。因此直接程序缓存中的内容刷新给Apache进行响应

3.3、OB缓存

3.3.1、OB缓存案例一

①代码

②效果

③图解

④描述

当代码在执行是顺序将内容放入程序缓存。最后由Apache进行封包响应由于Apache会提供一个默认的的响应头因此导致响应的格式不对因此导致错误

3.3.2、OB缓存案例二

①代码

②画图分析

  1. 当代码执行到第三行ob_start开启了一个全新的OB缓存区
  2. 当代码执行到第五行 是内容书输出因此优先放入到OB缓存
  3. 当代码执行到第七行由于header是设置响应头的并非直接输出因此进入到了程序缓存
  4. 当代码执行到第九行同样为输出存储到Ob缓存中
  5. 最终代码执行完毕,由于没有进行手动的刷新操作。因此PHP自动的将OB缓存中的内容刷新到程序缓存中
  6. Apache读取程序缓存中的内容进行封包响应

3.4.、OB缓存注意事项

1、OB缓存默认是一个开启状态 可以通过php.ini中的output_buffering控制

2、当有程序缓存跟OB缓存同时存在。输出的内容优先放入OB缓存。而非输出的内容例如控制响应的会放入到程序缓存。例如cookie、session等相关的设置

3、当代码执行完毕。PHP会自动的将OB缓存中的内容刷新到程序缓存中

4、OB缓存可以开启多个。每一个之间相互不响应

3.5、OB缓存中常用函数

Ob_start();开启OB缓存

Ob_get_contents();获取OB缓存中的内容

Ob_clean():清空OB缓存中的内容

Ob_end_clean():清空并且关闭OB缓存

Ob_flush();手动的刷新OB缓存到程序缓存中

Ob_end_flush();将OB缓存中的内容刷新到程序缓存并且关闭OB缓存

①ob_get_contents

浏览器访问结果

文件中结果

②ob_clean

浏览器结果

文件中结果

③ob_flush

浏览器效果

文件效果

4.6、OB缓存嵌套

对于上述案例浏览器会逐个输出并且会顺序的输出1,2,3。说明ob缓存每一次开启都会开启一个缓存区。每个之间存在一个“标号”关系

而在三个文件中分别的内容为php、mysql、java 产生此结果原因。因为每一个缓存区之间不相互影响

4.7、使用OB缓存实现静态化

①创建新闻数据表

CREATE TABLE `news` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`title` varchar(255) NOT NULL DEFAULT ”,

`body` varchar(255) NOT NULL DEFAULT ”,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

②写入测试数据

③编写新闻列表页

④创建可以生产新闻详情页的PHP文件


⑤访问触发生产

⑥查看文件

⑦给列表增加连接地址

4.8、商城使用静态化

4.8.1、商城首页进行静态化

①创建控制器方法

②查看TP静态化的方法

③修改方法实现静态化

④修改首页的模板

⑤修改footer模板

⑥访问方法触发生产操作

结果


注意使用静态化一定要注意更新

4.8.2、商城公告使用静态化

①创建数据表

CREATE TABLE `news` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`title` varchar(255) NOT NULL DEFAULT ”,

`body` varchar(255) NOT NULL DEFAULT ”,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

②创建更新的方法

③根据更新的方法创建模板文件

④访问触发更新

⑤查看目录文件

⑥修改首页显示的公告

⑦修改模板显示数据

⑧增加公共函数

最终效果如下


5、伪静态

5.1、伪静态介绍

从URL地址上查看类似真静态。但是在本质处理请求的还是有动态语言完成。对于伪静态的好处方便记忆并且符合搜索引擎优化

5.2、伪静态实现方式

1、借助于web服务器的重写机制实现

2、借助于框架中的路由功能

5.3、Apache开启重写机制

①启用Apache的重写机制

②设置虚拟主机可以重写

③重启Apache

对于Apache重写机制借助于.htaccess文件实现

5.4、伪静态案例

5.4.1、实现访问order.html由order.php进行解析

①创建虚拟主机

②修改host

③重启Apache

④创建文件

⑤访问测试


⑥创建重写规则文件

效果如下

5.4.2、实现带参数的伪静态

目的:用户访问http://demo.com/goods/10/100.html最终有http://demo.com/goods.php

①创建goods.php

②修改重写规则文件

③效果

5.4.3、防盗链

防止其他项目使用自己的资源文件

①拷贝图片

②修改重写规则文件

③访问查看效果

总结静态化与伪静态

7.1、静态化

1、运行速度快

2、更加安全

3、加载速度快

4、符合搜索引擎优化

5、受磁盘的IO性能影响

6、可扩展性不是特别高

7.2、伪静态

1、符合搜索引擎优化

2、地址容易记忆

3、安全性略差一点

4、可扩展性高。由于解析请求的是动态的php因此可以使用各种其他技术进行加速

标签: 地图API页面静态化
上一篇文章

TP 3.2 (一)配置、路由、模型、视图、控制器、商城后台首页展示

下一篇文章

Linux(三) 搭建 LAMP SSH、FTP、SCP、Rmp&Yum、挂载、阿里云、常用命令、关闭指定软件

下一篇文章
Swoole 安装、扩展源码、线程、进程、执行过程、常用事件、Http 服务器、WebSocket 服务器、Mysql 连接池、毫秒定时器、异步文件读取

Linux(三) 搭建 LAMP SSH、FTP、SCP、Rmp&Yum、挂载、阿里云、常用命令、关闭指定软件

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Search

没有结果
查看所有结果

About Me

个人随笔

Winston Lee

Programmer

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Winston Lee

About Me

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Categories

  • AJAX
  • BootStrap
  • CodeIgniter
  • CSS
  • DedeCMS
  • GIT
  • HTML
  • Javascript
  • Jquery
  • Laravel
  • Laravel在线教育平台
  • Linux
  • Memcache
  • MongoDB
  • MVC
  • Mysql
  • Nginx
  • Node
  • PDO
  • PHP
  • PHP7
  • PHP基本语法
  • PHP核心编程
  • Redis
  • Smarty
  • Socket
  • SVN
  • Swoole
  • TP3.2
  • TP3.2商城
  • TP5.0
  • TP5.0商城
  • XML
  • Yaf
  • Yii
  • Yii手机直播
  • 二次开发
  • 优化方案
  • 前端技术
  • 前端框架
  • 后台框架
  • 基本操作
  • 微信公众号
  • 数据库
  • 未分类
  • 混合APP
  • 源码Blog项目
  • 版本控制
  • 环境搭建
  • 移动端开发
  • 网站优化
  • 资料
  • 面向对象
  • 面向对象编程
  • 页面静态化

Tags

DOM Json RBAC 事件 传参 函数 分页 判断语句 匿名函数 变量 图片上传 存储过程 安装 对象 封装 属性 接口 控制器 数据库操作 数据类型 数据表 数组 文件上传 无刷新分页 权限 标签 模型 正则 流程控制 目录结构 算法 类 索引 继承 缩略图 表关系 视图 路由 运算符 选择器 递归 配置 错误处理 页面静态化 验证码
  • 首页
  • 前端
  • 前端框架
  • PHP
  • 数据库
  • 优化
  • 后台框架与实战
  • 移动开发
  • 二次开发
  • Linux
  • 版本控制
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3

没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3