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. 计算机思维or人的思维

    计算机领域就会有计算机领域的一些特性和一些思维方式,或者说有他自己的一些问题,须要用相应的思维方式来进行理解它,从而更好的驾驭他.有些时候遇到的一些问题,自己想却想不明确,也是由于我们没有把自己当做一 ...

  2. as3调用外部swf里的类的方法

    as3项目要调用外部swf里的类有3种方法: 1.将外部的swf发布为swc,使用时将swc引用添加到相应的项目中,这应该是最简单的一种引用.不过当项目中的类或组件比较多时就会使项目发布生成的swf文 ...

  3. 启动android程序和虚拟机时候出现如下错误的解决方法

    启动android程序和虚拟机时候出现如下错误的解决方法. 错误重现: [2011-07-13 16:22:48 - Emulator] invalid command-line parameter: ...

  4. android中设置快捷键方法setShortcut参数的说明

    setShortcut之所以要两个参数来设定两个快捷键是为了应对不同的手机键盘.数字快捷键为12键键盘(0~9,*,#,共12个按键)所准备的.其实我怀疑有这种键盘的手机能装Android么?因为我的 ...

  5. C语言register关键字—最快的关键字

        register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.注意是尽可能,不是绝对.你想想,一个CPU 的寄存器也就那么几个或几十个,你要是 ...

  6. 基于MVVM的知乎日报应用安卓源码

    使用data binding , dagger2 , retrofit2和rxjava实现的,基于MVVM的知乎日报APP运行效果: <ignore_js_op> 使用说明: 项目结构 a ...

  7. 对比AppScan Source和Fortify扫描AltoroJ的结果

    对比AppScan Source和Fortify扫描AltoroJ的结果: http://blog.csdn.net/testing_is_believing/article/details/1963 ...

  8. debian 颜色设置

    root@debian:/# vi /root/.bashrc #export PS1='\h:\w\$ 'export PS1='\[\033[1;32;40m\]\u@\h:\w\$ \[\033 ...

  9. json与jsonp区别浅析(json才是目的,jsonp只是手段)

    一言以蔽之,json返回的是一串数据:而jsonp返回的是脚本代码(包含一个函数调用): JSON其实就是JavaScript中的一个对象,跟var obj={}在质上完全一样,只是在量上可以无限扩展 ...

  10. scrollLeft,scrollWidth,clientWidth,offsetWidth 可实现导航栏固定不动(冻结)的效果

    HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth  scrollHeight: 获取对象的滚动高度.  scrollLeft:设置或获取位 ...