网站重构-你了解AJAX吗?
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北北报