Ajax是最近两年的一个热门词汇,它的出现,改变了很多网页的显示或者获取数据的方式,实现了不刷新就能reload的功能。正是由于这样,于是这个东西如雨后春笋般地被各个网站所应用,其实本站也有部分应用。不过就我看来,很多人对ajax似乎有个误解,认为ajax=提速,还有人认为ajax比静态的都要快得多,其实这是一个交叉的概念,不太准确的观点。
首先我们来看看ajax的基本工作原理.ajax其实就是利用javascript和服务器通信,将需要的信息取出来然后在网页中需要的地方填上,这是ajax最简单的一个工作原理,为什么能提速呢?传统的网页在更新的时候必须要重新载入一次,那些相同的数据也都被重新载入了。这里以新闻列表来举例,传统的做法是你在点击下一页的时候,就去服务器获取下一页的数据,这些数据包括新闻分类和其他周围的装饰文字或者图片,这些图片大都和上一页一模一样。那么如果采用ajax,ajax就利用javascript去获取需要更改的那一部分,然后来修改html页面上有变化的内容,很明显,这种方式节约了网络带宽,按需取数据,数据器也少处理了重复的数据,提高了速度。所以ajax确实有提速的作用。
就拿wordpress的ajax搜索和google的网页内部搜索来说吧,wordpress的ajax搜索其实基本原理就是:当你搜索的表单中出现数据变化时,就去启动wp自带的搜索脚本查询数据库进行搜索,然后将搜索的结果通过javascript改写到你当前网页的一个DIV上,这样的方式唯一提速是因为上面所说的那样,少载入了部分数据,其实效果不明显。反之,如果用户反复的改变搜索框的内容的话,就去导致js反复的去请求search的php脚本,给服务器加重了负担。如果用google的search,我们就彻底的将查询的负载转交给google服务器了(和你当前服务器的负载不在一个数量级上),然后仅仅通过你的网页调用js显示搜索结果,到底谁更优,你可以想象一下,如果你还想用ajax,建议你去看google的相应的API,实现起来也相当简单的。
另外关于ajax和静态谁快的问题,我认为这是一个交叉的概念。如果你用ajax去获取静态的html内容,这肯定是最快的一个方案。如果拿ajax去获取动程序动态生成的内容和静态html相比较的话,比较的结果就涉及到你服务器的动态语言解析能力,数据库吞吐能力和I/O能力之间的对比了,一般来说磁盘I/O输出静态绝对占优势,到底谁快呢?
好了,就说上面这些了,ajax是个好东西,但也没有必要滥用了。
该日志未加标签
赶快占沙发