- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Ajax的一些有用的小技巧.pdf
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 = /;
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
文档评论(0)