为什么我在变量末尾有随机字符串?

时间:2014-02-13 19:35:00

标签: javascript jquery

我有这段代码:

<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...)是网址。

但jQuery使用的网址(url: myurl,...)最后有“?_ = 1392319636208 ”。为什么那里有随机串?我该如何删除它?

2 个答案:

答案 0 :(得分:2)

在您的AJAX请求中,您已将选项cache定义为:

cache: false

来自jQuery文档:

  

缓存(默认:true,false,对于dataType'script'和'jsonp')

     

类型:布尔值

     

如果设置为false,则会强制请求的页面不被删除   由浏览器缓存。注意:将缓存设置为false仅适用   正确使用HEAD和GET请求。它通过附加工作   GET参数的“_ = {timestamp}”。不需要该参数   其他类型的请求,除了在IE8中对URL进行POST时   这已经被GET要求了。

以下是jQuery文档的链接:https://api.jquery.com/jQuery.ajax/

答案 1 :(得分:1)

这是您的ajax选项中cache: false的结果。请参阅jQuery.ajax()之外的选项缓存。