地图API
地图API介绍
地图API所指的就是能够提供地图相关的服务。
对于该服务一般都是通过JavaScript或者其他语言将具体的地图信息嵌入到应用中
例如58中是房子信息会显示出地点的地图信息
地图API除了提供地图显示之外还提供 例如 定位、线路、周边等相关的服务
2.2、腾讯地图的使用
2.2.1、文档查看
①进入到文档
②具体查看文档
2.2.2、具体使用地图
①载入API
②创建地图DOM元素
③创建对象
④初始化地图
2.2.3、根据指定地址显示地图
静态化概述
静态与动态网页
①静态网页
直接以静态的html/shtml等格式直接显示内容的
优点:安全、运行速度快
缺点:工作量大
②动态网页
使用动态语言配合数据库显示内容。
优点:灵活性高、维护工作量小
缺点:与静态网页相对比运行速度慢
什么是静态化
将动态网页显示的内容转换为静态网页来进行显示,而具体转换的过程就是静态化。对于静态化是一个过程。在实现的完成后会产生对于的html静态文件。
静态化优点
- 安全性高
对于静态化的html文件不接受任何参数。
- 性能更高
对于静态的html文件Apache是直接解析文件响应结果。对于动态的php需要交给PHP引擎解析最后在由Apache响应结果
- 加载速度快
浏览器自带缓存功能
- 更加符合搜索引擎优化
对于百度、360搜索引擎更加喜欢收录静态的HTML文件
2.4、实现静态化的原理
1、获取解析之后的结果(最终要显示的结果)
2、写入文件(一定要自行设计一个规律写入)
①创建生成html文件的php
②访问
③查看文件
访问效果
对于静态化中的两步骤能够实现就能够实现静态化功能。但是最常用的方式是使用PHP 中的OB缓存实现
静态化适用场景
- 适用于更新不是特别频繁的项目。例如行业、新闻门户或者企业项目使用
- 可以针对更新较为频繁的项目的首页使用静态化
缓存区
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缓存案例二
①代码
②画图分析
- 当代码执行到第三行ob_start开启了一个全新的OB缓存区
- 当代码执行到第五行 是内容书输出因此优先放入到OB缓存
- 当代码执行到第七行由于header是设置响应头的并非直接输出因此进入到了程序缓存
- 当代码执行到第九行同样为输出存储到Ob缓存中
- 最终代码执行完毕,由于没有进行手动的刷新操作。因此PHP自动的将OB缓存中的内容刷新到程序缓存中
- 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因此可以使用各种其他技术进行加速