- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Ajax需要注意的几个问题 本讲大纲: 1、安全问题 支持网站: 2、性能问题 3、浏览器兼容性问题 4、解决中文乱码问题 安全问题 随着网络的普及,安全问题已经是一个不可忽略的重要问题了。由于Web本身就是不安全的,所以尽可能降低Ajax的安全风险就显得尤为重要了。Ajax应用主要面临以下安全问题。 JavaScript本身的安全性 虽然JavaScript的安全性已逐步提高,提供了很多受限功能,包括访问浏览器的历史记录、上传文件、改变菜单栏等。但是,当在Web浏览器中执行JavaScript代码时,用户允许任何人编写的代码运行在自己的机器上,这就为移动代码自动跨越网络来运行提供了方便条件,从而给网站带来了安全隐患。为了解决这一潜在的危险,浏览器厂商在一个sandbox(沙箱)中执行JavaScript代码,沙箱是一个只能访问很少计算机资源的密闭环境,从而使Ajax应用不能读取或写入本地文件系统。虽然这会给程序开发带来困难,但时,它提高了客户端JavaScript的安全性。 数据在网络上传输的安全问题 当采用普通的HTTP请求时,请求参数的所有的代码都是以明码的方式在网络上传输的。对于一些不太重要的数据,采用普通的HTTP请求即可满足要求,但是如果涉及到特别机密的信息,这样做则是不行的,因为某些恶意的路由,则可能读取传输的内容。为了保证HTTP传输数据的安全,可以对传输的数据进行加密,这样即使被看到,危险也是不大的。虽然对传输的数据进行加密,可能会对服务器的性能有所降低,但对于敏感数据,以性能换取更高的安全,还是值得的。 客户端调用远程服务的安全问题 虽然Ajax允许客户端完成部分服务器的工作,并可以通过JavaScript来检查用户的权限,但是通过客户端脚本控制权限并不可取,一些解密高手可以轻松绕过JavaScript的权限检查,直接访问业务逻辑组件,从而对网站造成威胁。通常情况下,在Ajax应用中,应该将所有的Ajax请求都发送到控制器,由控制器负责检查调用者是否有访问资源的权限。 性能问题 由于Ajax将大量的计算从服务器移到了客户端,这就意味着浏览器将承受更大的负担,而不再是只负责简单的文档显示。由于Ajax的核心语言是JavaScript,而JavaScript并不以高性能知名。另外,JavaScript对象也不是轻量级的,特别是DOM元素耗费了大量的内存。因此,如何提高JavaScript代码的性能对于Ajax开发者来说尤为重要。下面介绍几种优化Ajax应用执行速度的方法。 尽量使用局部变量,而不使用全局变量。 优化for循环。 尽量少用eval,每使用eval都需要消耗大量的时间。 将DOM节点附加到文档上。 尽量减少点“.”号操作符的使用。 浏览器兼容性问题 Ajax使用了大量的JavaScript和Ajax引擎,而这些内容需要浏览器提供足够的支持。目前提供这些支持的浏览器主要分为两大类,一类是IE浏览器,在IE浏览器中,只有IE 5.0及以上版本才支持;另一类是非IE浏览器,例如Firefox、Mozilla 1.0、Savari 1.2及以上版本。虽然IE浏览器和非IE浏览器都支持Ajax,但是它们提供的创建XMLHttpRequest对象的方式是不一样,所以使用Ajax的程序必须测试针对各个浏览器的兼容性。 解决中文乱码问题 Ajax不支持多种字符集,它默认的字符集是UTF-8,所以在应用Ajax技术的程序中应及时进行编码转换,否则对于程序中出现的中文字符将变成乱码。一般情况下,有以下两种情况可以产生中文乱码。 (1)PHP发送中文、Ajax接收只需在php顶部添加如下语句。 header(Content-type: text/html;charset=GB2312); //指定发送数据的编码格式 XMLHttp会正确解析其中的中文。 (2)Ajax发送中文、PHP接收这个比较复杂,Ajax中先用encodeURIComponent对要提交的中文进行编码。在PHP页添加如下代码。 $GB2312string=iconv( UTF-8, gb2312//IGNORE , $RequestAjaxString); PHP选择MySQL数据库时,应用如下语句设置数据库的编码类型。 mysql_query(set names gb2312); Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo
文档评论(0)