1

我的 jquery 移动应用程序有一个奇怪的问题。下面是 Chrome 开发者工具快照的屏幕截图。

图片

为什么我的页面或脚本仍然被缓存已添加

 $.ajaxSetup ({
            cache: false
        });

同样在每个加载 my ul>的 ajax 调用中li都设置了cache:false.

请让我知道如何克服这种情况,因为我的移动缓存在每次点击时都会增长,让我发疯。

谢谢

更新

每次我点击导航到另一个页面时,这个脚本都会被执行:

$('body').on('click', '.menuClass', function(e) {
e.preventDefault();
e.stopImmediatePropagation();
var menuid = $(this).attr('id');
if (menuid == '100001') {
    settings.get('setval', function(obj) {
        if(obj.value.tableMode == "1"){
        $.mobile.changePage('categories.html', {
            transition : "slide"
        });
        return false;
        }
        else{
         $.mobile.changePage('index.html', {
                        transition : "slide"
                    });
        }
     });
   }
 });

但由于某些原因,category.html 的 URL 会在每次点击时加载,将 url 更改为下面

   http://localhost:8080/categories?_=1347279588477
   http://localhost:8080/categories?_=1347279584203
   http://localhost:8080/categories?_=1347279688227
4

1 回答 1

0

我不知道为什么 cache:false 不起作用,但我正在添加一个时间创建的字符串以防止缓存 ajax 页面。

通过添加&ts="+ new Date().getTime()到 url 的末尾来做到这一点。

这是我的用法;

$.ajax({
       type: "GET",
       url: "ajax.php?ajax_file=ajax_table_page&ts="+ new Date().getTime(),
       success: function(data){
       ..................
       }
});

我也用它来跟踪 ajax 错误(您可以在文档准备好后添加)

$.ajaxSetup({
  error:function(x,e){
       if(x.status==0){
       alert('You are offline!!\n Please Check Your Network.');
       }else if(x.status==404){
       alert('Requested URL not found.');
       }else if(x.status==500){
       alert('Internel Server Error.');
       }else if(e=='parsererror'){
       alert('Error.\nParsing JSON Request failed.');
       }else if(e=='timeout'){
       alert('Request Time out.');
       }else {
       alert('Unknow Error.\n'+x.responseText);
       }
  }
  });
于 2012-09-10T10:08:33.170 回答