ajax进修笔记---处理扫瞄器缓存和中文乱码[最新]ajax进修笔记---处理扫瞄器缓存和中文乱码[最新]
ajax学习笔记---解决浏览器缓存和中文乱码
ajax学习笔记---解决浏览器缓存和中文乱码
Ajax中浏览器缓存导致的问题
问题描述:
当XMLHttpRequest对象利用open方法向服务器发送请求的时候,当一次请求成功以后,页面会把请求到的值存放在页面缓存中,当你第二次发送同样的请求的时候。浏览器不会再去服务器重新取值,而是自动去页面缓存中查找。这样导致浏览器获得的永远是哪个第一次请求时获得的值而无法从浏览器中获得新的值.
例如
cachexmlht...
ajax进修笔记---处理扫瞄器缓存和中文乱码[最新]
ajax学习笔记---解决浏览器缓存和中文乱码
ajax学习笔记---解决浏览器缓存和中文乱码
Ajax中浏览器缓存导致的问题
问题描述:
当XMLHttpRequest对象利用open方法向服务器发送请求的时候,当一次请求成功以后,页面会把请求到的值存放在页面缓存中,当你第二次发送同样的请求的时候。浏览器不会再去服务器重新取值,而是自动去页面缓存中查找。这样导致浏览器获得的永远是哪个第一次请求时获得的值而无法从浏览器中获得新的值.
例如
cachexmlhttp.open("GET","cache",true);但浏览器第二次请求cache的时候,由于这次请求和上次请求的对象是一样的,而且浏览器缓存中已经保存了上次请求的值,所以就不再去请求cache,而是直接从缓存中获取上次保存的值
解决方法
在每次向服务器发送请求的时候,在url里面拼上一个当前时间的时间戳,这样浏览器就会认为每次请求都不一样,就会去向服务器发送请求了
var url="cache";
//为url添加上时间戳
if(url.indexof("?")>=0){
//如果请求的url原来就有参数
url=url+"&t="+(new Date()).valueOf(); } else{
//如果请求的url原来没有参数
url=url+"?t="+(new Date()).valueOf();
}
cachexmlhttp.open("GET",url,true);
关于中文乱码问题
Ajax中文乱码问题分为两种,一种是服务器端返回数据是中文,一种是页面发送到服务器的数据是中文。
先讨论服务器端返回数据是中文的情况。 对于IE6以上的浏览器,这个问题的解决办法就是XMLHttpRequest
对象在页面端定义的Charset和服务器端的http响应头的Content-Type中定义的Charset保持一致就不会有问题。
但是对于IE6,所有的事情就变态起来了。即使按照上面的原则同样解决不了问题。这个时候有两个解决问题的办法 方法1
这个方法很诡异,因为它和前面论述的东西是向矛盾的,在IE6中定义的XMLHttpRequest对象在页面端定义的Charset和服务器端的http响应头的Content-Type中定义的Charset都是GB2312的时候,同样会出现乱码。这个时候,把服务器端的http响应头的Content-Type中定义的Charset设置成utf-8就可以解决问题。
方法2
这个是推荐的方法,在IE6中定义XMLHttpRequest对象的时候,只使用MSXML2.XMLHTTP和Miscrosoft.XMLHTTP两个版本的Activex控件来创建就
可以解决这个问题,下面是代码
这是微软推荐的做法。所以通常就这么用了
var activexName = ["MSXML2.XMLHTTP","Miscrosoft.XMLHTTP"];
for (var i = 0; i
本文档为【ajax进修笔记---处理扫瞄器缓存和中文乱码[最新]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。