我学习了w3school的ajax教程,有个地方卡住了。XMLHttpRequest对象的open()方法接受3个参数,即method、url、async。其中url代表:文件在服务器上的位置。那么,给这个url加上一个,Math.random(),url这个参数不就成了:demo_get.asp?t=0.1234567890123456这为何能正常运行呢?(目前我文件位置的认识是flie/xxx.txt这样的。)w3的链接:http://www.w3school.com.cn/ajax/ajax_xmlhttprequest_send.aspGET请求一个简单的GET请求:xmlhttp.open("GET","demo_get.asp",true);xmlhttp.send();亲自试一试在上面的例子中,您可能得到的是缓存的结果。为了避免这种情况,请向URL添加一个唯一的ID:xmlhttp.open("GET","demo_get.asp?t="+Math.random(),true);xmlhttp.send();
2 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
例如你的文件URL是:flie/xxx.txt第一次Ajax请求这个文件,浏览器可能会将这个文件缓存在本地,下次再打开这个文件浏览器就可以直接打开本地文件,无需重新通过网络再次获取。但是,浏览器有可能会好心办了坏事,因为你修改了服务器的flie/xxx.txt文件,但是浏览器不知道,它还是会打开本地缓存的文件,这就会造成一些BUG。为了防止出现这种问题,在URL上加一个参数“t=随机数”,浏览数会认为两次打开的是不同的东西,第二次Ajax就不会使用第一次Ajax的缓存。至于“这为何能正常运行呢”?在URL上加上参数,同样还是打开这个文件,当然可以正常运行。flie/xxx.txt?t=0.1234567890123456,这个URL同样还是打开文件flie/xxx.txt。
添加回答
举报
0/150
提交
取消