Ajax的小贴士使用小结

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

使用Javascript库 

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

1 YUI:YAHOO出品,组件丰富强大健壮稳定,是团队协作开发的首选。 

2 JQuery:灵活、高效,其基于CSS3 和XPath的选择器语法引擎非常的强大和完整。 

3 Prototype:是一个非常优雅的Javascript库,最经典的莫过于$符号了,DWR,JQuery都被它吸引了。在它基础上出现了script.aculo.us。 

4 Mootools:核心语法和Prototype比较类似,但是用过之后才知道什么叫简单轻巧和短小精悍。

编码问题 

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

1 统一到UTF-8。这也是国际化的必然趋势。 

2 输出通过XMLHttpRequest获取的文本文本时,在headers中增加文本声明(直接HTML声明没有作用)。如: 

PHP:header('Content-Type:text/html;charset=GB2312'); 

ASP:Response.Charset = "GB2312" 

JSP:response.setHeader("Charset","GB2312"); 

3 WWW服务器上强制声明。比如:apache下的配置: 

AddDefaultCharset GB2312

        这种情况主要是应对通过XMLHttpRequest访问的文件是静态文件,无法声明headers的情况下。 

静态页面一般都会经过Apache的deflate或gzip压缩,此时在上面情况下IE中,首次通过XMLhttpRequest获得的数据可以正常显示,但再获取数据显示时出现乱码,这次因为再次获取的数据来自缓存,可能由于浏览器解压缩的问题导致Apache设置的默认编码声明丢失。由于这种情况下一般是纯文本,可能还无法禁止缓存,可以设置XMLhttpRequest访问的文本文件不压缩来解决这个问题。

4 非UTF-8页面通过XMLHttpRequest获取的文本文本输出前字符转码成unicode,或者编码直接是UTF-8,可以正常显示。如实例所示。

IE下的缓存问题 

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

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

复制代码 代码如下:

var url = 'http://dancewithnet.com/';  

url += '?temp=' + new Date().getTime();  

url += '?temp=' + Math.random();

2 在HTTP headers禁止缓存。如:

HTTP: 

复制代码 代码如下:

<meta http-equiv="pragma" content="no-cache" />  

<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />  

<meta http-equiv="expires" content="Thu, 01 Jan 1970 00:00:01 GMT" />  

<meta http-equiv="expires" content="0" />

PHP: 

复制代码 代码如下:

header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");  

header("Cache-Control: no-cache, must-revalidate");  

header("Pragma: no-cache");

ASP: 

复制代码 代码如下:

Response.expires=0  

Response.addHeader("pragma","no-cache")  

Response.addHeader("Cache-Control","no-cache, must-revalidate")

JSP: 

复制代码 代码如下:

response.addHeader("Cache-Control", "no-cache");  

response.addHeader("Expires", "Thu, 01 Jan 1970 00:00:01 GMT");

IE下的reponseXML问题 

使用responseXML时,IE下只能接受.xml为后缀的XML文件,如果不能以.xml文件为结尾的,则需要如下处理: 

1 在服务器端声明是xml文件类型。如: 

PHP:header("Content-Type:text/xml;charset=utf-8"); 

ASP:Response.ContentType = "text/xml"; 

JSP:response.setHeader("ContentType","text/xml"); 

2 利用responseText获取,然后封装成XML。 

3 在AJAX应用上,JSON和JsonML是XML非常好的替代品。

时间: 2024-10-24 00:00:26

Ajax的小贴士使用小结的相关文章

Ajax的小贴士使用小结_AJAX相关

在使用Ajax过程中,有时候总会遇到一些难题,浏览器兼容.编码.IE下的特殊处理等等,偶尔会搞的人头昏脑胀哭笑不得,这里列一些小贴士,或许有些用.  使用Javascript库         Ajax的流行和巨大威力,让我们重新审视了Javascript的开发,也直接促使各种库的出现.对于普通的开发者,使用一些适合自己的Javascript库不仅可以避免Ajax应用上的浏览器兼容等问题,也使其开发更加的稳定和高效.这里列一些我知晓的轻量级的Javascript库:  1 YUI:YAHOO出品

ANDROID安卓平台的切图小贴士

  用户手中看到的产品界面,并非设计师呕心沥血创作的效果图,而是一个个单独的切图经由开发同学技术实现.切图作为设计师与开发者之间的桥梁,它的作用很关键,合适的切图.精准的位置可以最大限度的还原效果图的设计,精妙的切图更会有事半功倍的效果哦! 我们经常会做一个俗称"点九"的切图,什么是"点九"呢?"点九"是Android平台处理图片的一种特殊的形式,由于文件的扩展名为:".9.png",所以被称为"点九".&

互联网产品设计:切图小贴士 “点九”切图事半功倍

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 用户手中看到的产品界面,并非设计师呕心沥血创作的效果图,而是一个个单独的切图经由开发同学技术实现.切图作为设计师与开发者之间的桥梁,它的作用很关键,合适的切图.精准的位置可以最大限度的还原效果图的设计,精妙的切图更会有事半功倍的效果哦! 我们经常会做一个俗称"点九"的切图,什么是"点九"呢?"

使用CDN的优势以及小贴士分享_网站运营

什么文件适合用CDN加载 CDN主要适用于一些静态资源文件的加载,比如javascript文件.css样式文件.字体.图片.视频等其他资源文件.这些文件我们往往放到自己的一些前端服务器中做处理(nginx),使用CDN就可以免除前端服务器部分工作了. 使用CDN的好处 提升网站的性能 使用CDN最大的益处是为你的服务器提供"分流",节省了你的带宽,减少了服务器的压力,很多CDN厂商提供的资源访问服务加载速度还是比较快的(墙内除外). 文件缓存 对于那些被普遍使用的资源文件(比如jque

设计经验:设计师的10条小贴士

很多人从未认真思考过设计或设计师,更别提把自己当作设计师了.但是普通人--教师.学生.各式各样的工作者--能从设计师和设计师的思维方式中学到什么?更专业化的职业呢?医生.科学家.调查工作者.工程师以及其他各种技术领域的专家们又能从平面设计师和交互设计师的思维方式中学到什么?有没有什么是设计师--无论通过他们的培训或者经验--知道而我们所不知道的?我相信是有的. 下面是我多年从事设计师所学到的10条小贴士(外加一条附加贴士).也许能为非设计师们带来些许启发.在世界各地演讲的时候,我常常会投影一张幻

38 条小贴士,让你成为Gmail大师

Gmail小贴士来啦,Google将Gmail用户比喻为忍者,根据你使用Gmail的功能来划分出忍者的四个级别: 白带菜鸟: 用星号来标记出重要的邮件. 聊天回复. 用标签整理你的信箱. 用"移动到"来清理你的收件箱,就像移动到文件夹一样. 搜索邮件,而不必整理它们. 将邮件存档,使你的收件箱变得更清净,但保持邮件不被删除. 导入老信箱的邮件和联系人. 使用主题. 报告Spammer. 10绿带老手: 视频聊天. 使用Tasks作为行动事件列表. 使用过滤器来控制邮件. 使用过滤器将某

给Mac提速的12条小贴士

  随着使用时间的增加,电子设备的运行速度总是会越来越慢,这几乎是无可避免的,苹果的Mac系列计算机自然也不能幸免.不过所幸的是,一些小技巧可以在一定程度上恢复Mac的速度.如果你购买的Mac开始变慢,不妨尝试一下下面这12条小贴士. 1.检查系统升级 设备运行速度的变慢可能是因为系统本身的bug或缺陷,而系统升级则可以对这些问题进行修复,所以用户应该定期检查是否有新的升级可用.想要查看系统升级,你需要点击屏幕左上角的苹果图标,然后从下拉菜单当中选择软件升级.在大多数情况下,你的Mac应该会在新

ConstraintLayout ( 这到底是什么 ) (小贴士及小技巧) 第二部分

本文讲的是ConstraintLayout ( 这到底是什么 ) (小贴士及小技巧) 第二部分, 哇哦,我们又有一整天时间,所以就来学点酷炫的新知识吧. 你们好,希望各位都有所进步.在上周中,我们学习了 ConstraintLayout 的第一部分.现在是时候来学习这个神奇布局的剩下内容了. 动机: 学习动机与先前在第一部分中讨论的是一样的. 不过这次我不准备解释 ConstraintLayout 的特性,相反,我会分享一些当你们独立实现时可能遇到的问题.最后,我向大家保证,你们将会潜移默化地了

R和Python中的文本挖掘:8个入门小贴士

你希望学习文本挖掘,却发现大多数教程难度跨度很大?或者说你找不到心仪的数据集? 本文将会通过 8 个小贴士帮助你走进文本挖掘之门. 对文本保持好奇 在数据科学世界中,凡事的第一步都是"感到好奇",文本挖掘也不例外. 就像 StackOverflow 的数据科学家 David Robinson 在他的博客中说的那样,"当我看到一个假设 [-] 我就迫不及待地想要用数据验证它".你也应该像他那样对文本保持好奇心. David Robinson 看到的假设是: 即使你并不