天天看點

IE下使用jquery ajax失效的原因

在分析bo-blog的代碼時,發現js的路徑竟然是帶參數的,想想有點不可思議。

細細研究下來,有以下三種可能:

2) javascript和html,圖檔一樣,作為靜态檔案會被浏覽器緩存。後面加個随機數,能保證每次請求都是新檔案,如common.js?t=12442344。 

3) 這個參數是供整體頁面中查詢js的參數所用,屬js外部應用,但絕對不是供js的内部應用。如你有一個html頁面,裡面寫上一段:

<script type="text/javascript" src="test.js?a=100&b=2"></script>

首先,這個?a=100&b=2是絕對不會影響到test.js的内部函數執行的,因為test.js無法接收到這個參數。

其次,這個?a=100&b=2是可以通過html中的dom結構通路到這個js路徑。如下例:

var xsrc = document.getelementsbytagname("script")[document.getelementsbytagname("script").length-1].src

此時xsrc能得到test.js?a=100&b=2,然後通過正規表達式的方法來解析出這些參數:a=100及b=2。然後你拿這兩個參數實作一些判斷。 

最後,回頭來看看文首的?jsver=2.1.1.3626.0,第一種肯定是不可能的,不是每一種伺服器都支援urlrewrite的。我覺得這個性質介于第二種和第三種之間。沒覺得jsver=2.1.1.3626.0有什麼實用的,頂多用來判斷是什麼版本,但這個版本号本來就是從php代碼中得到的。我覺得這個參數多半是象征性的,沒啥實際用處。

IE下使用jquery ajax失效的原因

<script>document.write("<script src='test.js?v="+math.random()+"'></s"+"cript>");</script>  

<script src='main.js?rnd=<?php echo uniqid();?>'></script>  

二前端部分

2 在 ajax 的 url 參數後加上 "?fresh=" + math.random(); //當然這裡參數 fresh 可以任意取了

3 第3種方法和第2種類似 在 url 參數後加上 "?timestamp=" + new date().gettime(); //推薦使用這種方式

IE下使用jquery ajax失效的原因

$.get("/ajax.asp?id="+ id +"&action=gamevote&r="+math.random(),function (data){});  

 4.如果是跨域

IE下使用jquery ajax失效的原因

myurl?callback=?