接触Ajax,那时候的Ajax支持还不是很好,都要涉及底层,没有现成的框架给你调用。现在把常见的问题列举如下。
1、编码问题
注意AJAX要取的文件是UTF-8编码的。GB2312编码传回BROWSE后中文会乱码。如果用VBScript的话还可以转化,但是VBScript只有IE支持。
所以,选择UTF-8编码是一劳永逸的办法。

2、清除服务器端文件的缓存。
当用XMLHTTP取回一个服务器端的文件,文件会缓存在浏览器端。下次再取文件时,不会再去服务器取文件。所以,对于刷新频繁的文件,一定要指定文件的过期时间。

3、什么时候使用XML
Ajax里的X指的就是XML,可是真的XML就是最好的解决方案吗?XML和JSON相比,在传递同等量的信息时,XML文件更大。所以往往JSON是更好的选择。不过,你还可以直接输出Javascript执行,这样的效率往往更高:不需要写复杂的回调函数。不过安全问题也要更加注意。

4、两种Ajax的方式
一些人的基础可能还不是很扎实,并不非常了解Ajax的原理,那你知道Ajax由哪两种方式来实现吗?
最古老的一种是iframe来加载一个包含js的网页,这个网页里的脚本用

top.function来调用parent页面里的函数。但是,你可以指定a的target和form的target,这样就不用序列化表单,实际上能很方便地发送表单。当然后期就稍微有点麻烦,出现问题也不容易解决。
后来就是xmlhttp组件的方式。什么时候挑选什么方式,这也是一种技巧。

5、跨域问题
如果一个脚本不在同一个域,两者就不能相互调用。如果iframe里是其他域的网页,就不能访问parent页的具体内容。如果需要访问远程的XML,比如RSS

FEED,建议可以用服务器端脚本来中转。在访问量不是非常大的情况下还是很很好的一个解决办法。不过,翻阅JQuery手册发现它能调用(执行)跨域的脚本,具体怎么做的还不是很清楚。大家可以下载JQUERY未加密的版本来研究下。

6、安全问题
在服务器端,虽然客户端能预处理很多东西,你仍要注意一句话:一切来自客户端的变量都是有害的。不在Ajax的情况下很多程序员往往会放松警惕。这使得安全问题更隐蔽。如果是开源程序的话那么问题就会在网友面前马上暴露出来;黑盒的情况下,往往被入侵了还是找不出原因。
结语:实际上在这个框架横行的年代直接编写Ajax实现代码的机会并不多,很多JS框架都集成了AJAX调用函数,一些服务器端的框架,例如THINKPHP也集成了AJAX。但是,理解一些底层的东西,还是有利于排除BUG,提高AJAX应用的性能的。

Ajax 应用六个需要注意的事项的更多相关文章

  1. JQuery中的Ajax(六)

    一:Ajax请求jQuery.ajax(options) load(url,[data],[callback])jQuery.get(url,[data],[callback]) jQuery.get ...

  2. AJax中post与get请求注意事项

    在使用ajax提交表单时,一定要区分提交按钮的形式和数据表头的设置,实例如下: GET请求: HTML代码: <!doctype html> <html lang="en& ...

  3. jquery用Ajax中的回调函数时注意事项

    前端代码 <script language="javascript" type="text/javascript" src="<?php ...

  4. 【转】AJAX发送 PUT和DELETE请求注意事项

    jax使用restful服务发送put 和 delete 请求时直接传参会出现问题 一,采用POST  + _method:delete/put  + filter 的方法ajax发送put 和 de ...

  5. 从零开始学 Web 之 Ajax(六)jQuery中的Ajax

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. jquery中Ajax提交配合PHP使用的注意事项-编码

    问题:Ajax提交的数据的编码为utf-8,并且返回的数据也要求是utf-8的,如果说你的系统不是utf-8编码的话,那会让你痛不欲生! 解决方法:(比较笨拙的方法,但是很好用) 对于接收的数据,使用 ...

  7. Ajax :六个全局事件

    加载请求: .ajaxStart() 和 .ajaxstop() $(document).ajaxStart(function(){ $('.loading').show(); }).ajaxStop ...

  8. Ajax使用post方式发送数据注意事项

    Ajax使用post方式给服务器传递数据时,需要将传递的字符串转化为模拟from表单发送数据的XML格式 在open之后奢姿头协议信息,模拟from表单传递数据 xhr.setRequestHeade ...

  9. HTML&javaSkcript&CSS&jQuery&ajax(六)

    一.HTML表单 1.<input type="text">定义文本输入的单上输入字段,<form> First name:<br>   < ...

随机推荐

  1. JS--中奖广告浮动效果

    618要到了.要帮公司做一个简单的中奖号码的浮动.怎么玩了.其实只需要使用scrollHeight;scrollTop;offsetHeight这三个就可以实现了. 代码如下: <html> ...

  2. CH Round #72 奇数码问题[逆序对 观察]

    描述 你一定玩过八数码游戏,它实际上是在一个3*3的网格中进行的,1个空格和1~8这8个数字恰好不重不漏地分布在这3*3的网格中. 例如:5 2 81 3 _4 6 7 在游戏过程中,可以把空格与其上 ...

  3. Vijos1450 包裹快递[二分答案]

    背景 小K成功地破解了密文.但是乘车到X国的时候,发现钱包被偷了,于是无奈之下只好作快递员来攒足路费去Orz教主…… 描述 一个快递公司要将n个包裹分别送到n个地方,并分配给邮递员小K一个事先设定好的 ...

  4. java 经典程序 100 例

    1,编写程序,判断给定的某个年份是否是闰年.闰年的判断规则如下:( 1)若某个年份能被 4 整除但不能被 100 整除,则是闰年.( 2)若某个年份能被 400 整除,则也是闰年. import ja ...

  5. C/C++编程语言学习资料尽收眼底 电子书+视频教程

    Visual C++(VC/MFC)学习电子书及开发工具下载请看这里 史无前例的网络最全最强C/C++资料索引: C/C++编程语言学习资料尽收眼底 电子书+视频教程 VC++/MFC(VC6)开发技 ...

  6. Swift之 ? 和 !

    Swift之 ? 和 ! 转载于:http://joeyio.com/ios/2014/06/04/swift---/ Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋 ...

  7. css设置select高度(IE,FF,Chrome)[转]

    大家都知道select是无法设置高度和边框颜色等等的在ie67下面,其他的都是可以的,所以有时候为了在所有的浏览器下显示都一致,就使用了 js的模拟,这个是大家经常碰到的,js不光要模拟外观还有模拟事 ...

  8. C#基础系列——多线程的常见用法详解

    前言:前面几节分别介绍了下C#基础技术中的反射.特性.泛型.序列化.扩展方法.Linq to Xml等,这篇跟着来介绍下C#的另一基础技术的使用.最近项目有点紧张,所以准备也不是特别充分.此篇就主要从 ...

  9. 容器化redis高可用方案

    偶然看到一个GITHUB项目,提供了一套Docker Compose下的redis Sentinel方案. 项目地址https://github.com/AliyunContainerService/ ...

  10. RapidJSON v1.1.0 发布简介

    时隔 15.6 个月,终于发布了一个新版本 v1.1.0. 新版本除了包含了这些日子收集到的无数的小改进及 bug fixes,也有一些新功能.本文尝试从使用者的角度,简单介绍一下这些功能和沿由. P ...