AJax技术

Ajax的一些有用的小技巧

字号+ 作者:H5之家 来源:H5之家 2015-09-20 12:15 我要评论( )

Ajax的一些有用的小技巧,在使用Ajax过程中,有时候总会遇到一些难题,浏览器兼容、编码、IE下的特殊处理等等,偶尔会搞的人头昏脑胀哭笑不得,这里列一些小贴士

在使用Ajax过程中,有时候总会遇到一些难题,浏览器兼容、编码、IE下的特殊处理等等,偶尔会搞的人头昏脑胀哭笑不得,这里列一些小贴士,或许有些用。

使用Javascript库

Ajax的流行和巨大威力,让我们重新审视了Javascript的开发,也直接促使各种库的出现。对于普通的开发者,使用一些适合自己的Javascript库不仅可以避免Ajax应用上的浏览器兼容等问题,也使其开发更加的稳定和高效。这里列一些我知晓的轻量级的Javascript库:

  • YUI:YAHOO出品,组件丰富强大健壮稳定,是团队协作开发的首选。
  • JQuery:灵活、高效,其基于CSS3 和XPath的选择器语法引擎非常的强大和完整。
  • Prototype:是一个非常优雅的Javascript库,最经典的莫过于$符号了,DWR,JQuery都被它吸引了。在它基础上出现了script.aculo.us。
  • Mootools:核心语法和Prototype比较类似,但是用过之后才知道什么叫简单轻巧和短小精悍。
  • 编码问题

    通过XMLHttpRequest获取的数据,默认的字符编码是UTF-8,如果前端页面是GB2312或者其它编码,显示获取的数据就是乱码。通过XMLHTTPRequest,POST的数据也是UTF-8编码,如果后台是GB2312或者其他编码也会出现乱码。解决方法:

  • 统一到UTF-8。这也是国际化的必然趋势。
  • 输出通过XMLHttpRequest获取的文本文本时,在headers中增加文本声明(直接HTML声明没有作用)。如:
    PHP:header('Content-Type:text/html;charset=GB2312');
    ASP:Response.Charset = "GB2312"
    JSP:response.setHeader("Charset","GB2312");
  • WWW服务器上强制声明。比如:apache下的配置:
    AddDefaultCharset GB2312

    这种情况主要是应对通过XMLHttpRequest访问的文件是静态文件,无法声明headers的情况下。
    静态页面一般都会经过Apache的deflate或gzip压缩,此时在上面情况下IE中,首次通过XMLhttpRequest获得的数据可以正常显示,但再获取数据显示时出现乱码,这次因为再次获取的数据来自缓存,可能由于浏览器解压缩的问题导致Apache设置的默认编码声明丢失。由于这种情况下一般是纯文本,可能还无法禁止缓存,可以设置XMLhttpRequest访问的文本文件不压缩来解决这个问题。
  • 非UTF-8页面通过XMLHttpRequest获取的文本文本输出前字符转码成unicode,或者编码直接是UTF-8,可以正常显示。如实例所示。
  • IE下的缓存问题

    由于IE的缓存处理机制问题,每次通过XMLHttpRequest访问动态页面返回的总是首次访问的内容,解决方法有:

  • 客户端通过添加随机字符串解决。如:

     

  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • JQuery实现Ajax加载图片的方法

      JQuery实现Ajax加载图片的方法

      2016-02-24 17:01

    • 判断用户是不是为ajax请求

      判断用户是不是为ajax请求

      2016-02-24 17:00

    • Ajax与WEB开发 by alixixi.com

      Ajax与WEB开发 by alixixi.com

      2016-02-11 11:02

    • jQuery.ajax()的相关参数及使用

      jQuery.ajax()的相关参数及使用

      2016-02-08 16:00

    网友点评