2014-02-13 137 views
-4

我有这样的代码:为什么我在变量的末尾有随机字符串?

<html> 
    <head> 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    <script> 
$(document).ready(function(){ 
     var j = jQuery.noConflict(); 
     j(document).ready(function() {    
      setInterval(function(i) { 
      var divs = document.getElementsByClassName('post'); 
      var lastPostID = parseInt(divs[0].getAttribute('data-id')); 
      var myurl = "/post/"+parseInt(lastPostID); 
      console.log(myurl, "myurl"); 
      j.ajax({ 
       url: myurl, 
       cache: false, 
       success: function(html){ 
       j("#temp").html(html) 
       j("#temp").prependTo("#allPosts"); 
       } 
      }) 
      }, 5000) 
     }); 
}); 
    </script> 
    </head> 
    <body> 
     <div id="temp" style="display: none;"></div> 
     <div id="allPosts"> 
      <div class='post' data-id='100'>...</div> 
      <div class='post' data-id='20'>...</div> 
      <div class='post' data-id='1'>...</div>   
     </div> 
    </body> 
</html> 

我看到控制台每5秒:

/post/100 myurl jQuery_div_update.html:12 
OPTIONS file:///post/100?_=1392319636208 

在第一行(console.log...)是URL确定。

但jQuery使用的URL(url: myurl,...)末尾有“?_ = 1392319636208”。为什么有随机字符串?我怎样才能删除它?

+4

这是因为'缓存:FALSE' –

+2

jQuery的增加它会阻止缓存。 –

+0

这是为了避免缓存,但发布请求不应该缓存,所以它没有区别。 'cache:false' < - – epascarello

回答

2

在你的AJAX请求已定义的选项cache为:

cache: false

从jQuery文档:

缓存(默认值:true,false为的dataType '脚本'和'jsonp')

类型:布尔型

如果设置为false,则会强制请求的页面不会被浏览器缓存为 。注意:将缓存设置为false只能正确使用HEAD和GET请求 。它通过在GET参数中追加 “_ = {timestamp}”来工作。 其他类型的请求不需要此参数,IE8中除POST已发送到已由GET请求的URL 外。

这里是jQuery的文档的链接:https://api.jquery.com/jQuery.ajax/

+3

如果只有每个人都可以访问您正在讨论的这个神秘的jQuery文档。想象一下,人们会真正知道他们在做什么。 –

相关问题