当前位置:首页>开发>正文

jquery里的缓存问题如何解决AJAX面试题 有关jquery中ajax的缓存问题,怎么解决

2023-07-29 01:08:54 互联网 未知 开发

 jquery里的缓存问题如何解决AJAX面试题 有关jquery中ajax的缓存问题,怎么解决

jquery里的缓存问题如何解决?AJAX面试题

如果直接用jQuery里的$.ajax()方法的话,去除缓存很简单,只需要配置一下缓存属性cache为false,但如果想要简单写法getJSON(),去除缓存就不能通过配置来解决了。因为getJSON根本没有这个缓存属性让你来配置。因为如果其调用的地址URL和之前的一样的话,回调函数会直接在缓存里面读取数据,而不是进后台调用相应的方法。
解决方法就是让他的每次请求的URL地址不一样就行,但是同时又要不影响请求的服务所需要的数据,那么可以有一下几种方法:
1、$.getJSON(URL?t= new Date(),function(json){})就是原有的URL基础上加一个时间变量,每次的请求地址就不一样了。
2、$.getJSON(URL?rand= Math.random,function(json){})就是原有的URL基础上加上一个随机变量,不过这个方法有风险,万一随机数一样。。。。。。
3、第三种方法就是自己定义一个递增变量,在URL后面加上这个递增变量,每次请求完后,就递增一下。
$.get()去除缓存的方法和$.getJSON()相同。

有关jquery中ajax的缓存问题,怎么解决?

jquery中ajax的缓存问题需要增加参数cache:
$.ajax({
type: "GET",
cache: true,
url: aa.php,
dataType: "html",
cache: true,
success: function (res) {
$(.page-loading).remove()
$(.page-content .page-content-body).html(res)
})
这样类似以下请求就可以缓存了:
aa.com/aa.php
aa.com/aa.css
aa.com/aa.js?_=1373600904652

如何取出jquery ajax的缓存信息

您好,我来为您解答:
  Get方式:
  用get方式可传送简单数据,但大小一般限制在1KB下,数据追加到url中发送(http的header传送),也就是说,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面。另外最重要的一点是,它会被客户端的浏览器缓存起来,那么,别人就可以从浏览器的历史记录中,读取到此客户的数据,比如帐号和密码等。因此,在某些情况下,get方法会带来严重的安全性问题。
  Post方式:
  当使用POST方式时,浏览器把各表单字段元素及其数据作为HTTP消息的实体内容发送给Web服务器,而不是作为URL地址的参数进行传递,使用POST方式传递的数据量要比使用GET方式传送的数据量大的多。
  总之,GET方式传送数据量小,处理效率高,安全性低,会被缓存,而POST反之。仅供参考。
  如果我的回答没能帮助您,请继续追问。