23.3 Ajax开发需要注意的几个问题
视频讲解:光盘TMlx23Ajax开发需要注意的几个问题.exe
Ajax在开发过程中需要注意以下几个问题。
1.浏览器兼容性问题
Ajax使用了大量的javascript和Ajax引擎,而这些内容需要浏览器提供足够的支持。目前提供这些支持的浏览器有IE 5.0及以上版本、Mozilla 1.0、Netscape 7及以上版本。Mozilla虽然也支持Ajax,但是提供XMLHttpRequest对象的方式不一样,所以使用Ajax程序必须测试针对各个浏览器的兼容性。
2.XMLHttpRequest对象封装
Ajax技术的实现主要依赖于XMLHttpRequest对象,但在调用其进行异步数据传输时,由于XMLHttpRequest对象的实例在处理事件完成后就会被销毁,所以如果不对该对象进行封装处理,在下次需要调用它时就要重新构建,而且每次调用都需要写一大段的代码,使用起来很不方便。现在很多开源的Ajax框架都提供了对XMLHttpRequest对象的封装方案,其详细内容这里不作介绍,请参考相关资料。
3.性能问题
由于Ajax将大量的计算从服务器端移到了客户端,这就意味着浏览器将承受更大的负担,而不再是只负责简单的文档显示。由于Ajax的核心语言是JavaScript,而JavaScript并不以高性能知名,另外, JavaScript对象也不是轻量级的,特别是DOM元素耗费了大量的内存。因此,如何提高JavaScript代码的性能对于Ajax开发者来说尤为重要。下面介绍3种优化Ajax应用执行速度的方法。
优化for循环。
将DOM节点附加到文档上。
尽量减少点“.”操作符的使用。
4.中文编码问题
Ajax不支持多种字符集,它默认的字符集是utf-8,所以在应用Ajax技术的程序中应及时进行编码转换,否则程序中出现的中文字符将变成乱码。一般情况下,以下两种情况将产生中文乱码。
PHP发送中文,Ajax接收
只需在PHP顶部添加如下语句:
header('Content-type: text/html; charset=GB2312'); //指定发送数据的编码格式
XMLHttpRequest会正确解析其中的中文。
Ajax发送中文,PHP接收
这个比较复杂,在Ajax中先用encodeURIComponent对要提交的中文进行编码。在PHP页添加如下代码:
$GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);
PHP选择mysql数据库时,使用如下语句设置数据库的编码类型:
mysqli_query($conn, "set names gb2312");
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。