AJAX是时下最流行的一种WEB端开发技术,而你真正了解它的一些特性吗?--IT北北报

XMLHTTPRequest(XHR)是目前最常用的技术,它允许异步接收和发送数据,所有的主流浏览器都对它有不错的支持,你可以在请求中添加任何头信息或者携带参数,同时也可以读取服务器返回的所有头信息及响应文本。这些正是AJAX产生的基础。

·使用XHR时候,我们到底是应该使用POST还是GET方式呢?

如果你需要在POST和GET间做出选择的时候,对于那些不会改变服务器状态,只会获取数据(幂等行为)的请求,我强烈建议你使用GET方式,因为经GET请求的数据会被缓存起来,如果多次请求同一数据的话,将会命中缓存。

只有当请求的URL加参数后的长度接近或超过2048字节时,应该考虑使用POST方式,因为IE浏览器限制了URL的长度,这可能导致URL被截断,而得不到你想要的数据。

当然,当你使用GET方式的时候,你也可以主动去控制缓存的时间,方法是给请求加上相应的过期时间:

Var rep=new XMLHTTPRequest();

rep.setRequestHeader(“Expires”,”Mon,28 Jul 2020 23:59:59 GMT”);

这样我们主动给那些很久不会发生变化的数据发送一个很久以后才过期的请求。

·关于AJAX传送的四种数据格式XML、Json、Html、自定义格式。

XML:

<users>

<user id=”1” name=”itbbb.com” />

<user id=”2” name=”baby” />

</user>

优点:它是最早的数据传送标准,被各种语言良好支持,格式严谨、易于验证。

缺点:数据传送量消耗巨大,会携带大量标签,解析需要消耗一些性能。

Json:

users=[{id:1,name:”itbbb.com”},{id:2,name:”baby”}]

优点:轻量级数据传送方式,结构轻巧,文件尺寸小,解析快。

缺点:可读性差,比较脆弱,可能因为一个标点符号的错误导致整个数据解析失败。

HTML:

<ul class=”users”>

<li class=”user” id=”1”><a>itbbb.com</a></li>

<li class=”user” id=”2”><a>baby</a></li>

</ul>

优点:结构通常在服务器端已经组织好,通常服务器端解析性能要明显优于客户端解析的性能,这样的数据通常可以直接输出。

缺点:这样的数据包含了比XML过多的标签信息,数据更加冗长。

通常当客户端的瓶颈是CPU而不是带宽的时候,会使用这种技术。

自定义格式:

1:itbbb.com,;2:baby;

优点:这样的纯文本格式把数据缩短到最短,只需要一个特定的分隔符就可以解析,通常用于大数据量传输时,可以解决数据体积的问题。

缺点:通常要自己构造方法去解析,兼容性较差,语言类库通常不提供任何解析方法。

相信看了以上关于数据格式的剖析,您一定已经选择出了最适合你项目中的数据格式。

想了解更多高性能Javascript的技术您可以尝试阅读IT北北报

 

网站重构-你了解AJAX吗?的更多相关文章

  1. PHP Yii框架开发——组织架构网站重构

    最近一段时间在维护公司的组织架构网站(Org),旧版网站只是用了xampp简单搭建了一套环境部署在了windows机器上,代码结构相对简单. 整个架构如下: 整个架构没有用到复杂的结构,class里放 ...

  2. 哈佛大学构建动态网站--第七讲ajax

    Ajax ajax举例: DOM的结构 通过js来修改html页面. Ajax的含义: return false的用途 跨浏览器的ajax 为什么不直接从yahoo获得数据呢? XMLHttpRequ ...

  3. 《编写高质量代码-Web前端开发修改之道》笔记--第一章 从网站重构说起

    本章内容: 糟糕的页面实现,头疼的维护工作 Web标准--结构.样式和行为的分离 前端的现状 打造高品质的前端代码,提高代码的可维护性--精简.重用.有序 糟糕的页面实现,头疼的维护工作 工作中最大的 ...

  4. 对web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?

    网页主要有三部分组成:结构(Structrue).表现(Presentation)和行为(Behavior).对应的网站标准也分为三方面: 1.结构化标准语言,主要包括XHTML和XML: 2.表现标 ...

  5. Ajax重构

    Ajax重构简介 Ajax的实现主要依赖于XMLHttpRequest对象,但是在调用其进行异步数据传输时,由于XMLHttpRequest对象的实例在处理事件完成后就会被销毁,所以如果不对该对象进行 ...

  6. 你真正的了解Ajax?Ajax技术简述

    Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合.Ajax并没有创造出某种具体的新技术,它所使用的大多数技术都是在很多年以前就已经存在了,然而Ajax以一种崭新的方式来 ...

  7. JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

    一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...

  8. 一种开发模式:ajax + ashx + UserControl

    一.ajax+ashx模式的缺点     在web开发过程中,为了提高网站的用户体验,或多或少都会用到ajax技术,甚至有的网站全部采用ajax来实现,大量使用ajax在增强用户体验的同时会带来一些负 ...

  9. 一枚招聘信息——分期乐招页面重构/UI开发(8k-12k 深圳 经验1-3年 学历不限 全职)

    腾讯人创建的分期乐公司,急需页面重构人才若干枚,公司前景好,机会难得,有兴趣的速速 8k-12k 深圳 经验1-3年 学历不限 全职 公司网站: http://www.fenqile.com/ 职位诱 ...

随机推荐

  1. 《SAS编程与数据挖掘商业案例》学习笔记之十七

    继续读书笔记,本次重点sas sql语句,因为sql内容多且复杂,本文仅仅介绍商业应用中经常使用的而且easy出错的地方,内容包含:单表操作.多表关联.子查询以及merge和join的差别 1.单表操 ...

  2. android122 zhihuibeijing 主页面搭建

    右边主页面布局设计: 文字颜色选择器和是否点击的图片选择器  路径和写法: <?xml version="1.0" encoding="utf-8"?&g ...

  3. C#中Strings VS. StringBuilder

    string mappingHandler = String.Format(@"""[name='BTSHTTPReceiveModule',path='BTSHTTPR ...

  4. 使用Atomikos Transactions Essentials实现多数据源JTA分布式事务--转载

    原文:http://www.ite/topic/122700 9.17 update:使用NonXADataSourceBean. Mysql在5.0版本和Connecter/J5.0版本后提供了XA ...

  5. Android 自定义View修炼-Android中常见的热门标签的流式布局的实现

    一.概述:在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何 自定义一个类似热门标签那样的流式布局吧(源码下载在下面最后给出哈) 类似的 ...

  6. 命令行界面下用户和组管理之userdel的使用

    userdel - delete a user account and related files 在Linux中,userdel命令的功能是删除系统中的用户及相关的文件 语法    userdel ...

  7. CSS表格固定列宽

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. matlab——sparse函数和full函数(稀疏矩阵和非稀疏矩阵转换)

    函数功能:生成稀疏矩阵 使用方法 :S = sparse(A) 将矩阵A转化为稀疏矩阵形式,即矩阵A中任何0元素被去除,非零元素及其下标组成矩阵S.如果A本身是稀疏的,sparse(S)返回S. S ...

  9. postgresql crosstab 行转列函数

    http://blog.csdn.net/hexin373/article/details/19242833

  10. scala学习笔记:控制抽象

    def repeat(n:Int)(action: =>Unit)=for(i<-1 to n)action var i = 0 repeat(5){ println(i=i+1) } 另 ...