5
我使用jquery的ajax方法從服務器動態加載一些html代碼片段,並將代碼片段插入到div中。片段內有一些用於外部腳本的<script>
標籤。爲什麼jQuery發送動態加載的腳本標記的GET請求?
我在發出ajax請求的同時觀看了Chrome工具欄中的網絡活動,發現腳本標記的GET請求附加了類似?_=1234567890
之類的內容。我也注意到 GET請求的發起者是jquery。我知道jquery這樣做是爲了避免使用緩存版本的AJAX請求,但我希望緩存腳本。
真正讓我感到驚訝的是,<script>
標籤由jquery和ajax獲取。當您將一個<script>
標籤插入到DOM中時,瀏覽器是否應負責加載並執行它?爲什麼jQuery在這裏採取行動?
如果我跳過jquery並使用純js將<script>
標記附加到DOM,瀏覽器將加載並解析它,對嗎?爲什麼瀏覽器不這樣做並讓jquery接管?
==============代碼=============
代碼加載HTML片段:
var url = "/"+modulename+"/settings/"+this.selectedProduct.id;
$.get(url, null, function(snippet){
$("div#content").empty().html(snippet);
}
html代碼片段:
<script type='text/javascript' src="http://www.staticcdn.org/somelib.js"></script>
<script>
<!--some html rendering code that depends on somelib-->
</script>
這是更大的問題,爲什麼jQuery的接管,而不是讓瀏覽器做到這一點? – Scimonster
如果您將$ .ajax中的緩存選項設置爲false,會怎樣? – adeneo
如果您的'
已在jQuery的文檔看看阿賈克斯:http://api.jquery.com/jQuery.ajax/並注意選項
datatype
$.get
使用$.ajax
。如果你不想要?_=...
,你必須自己撥打$.ajax
。還我看看選項
cache
來源
2014-04-06 07:44:03 drkunibar
我用ajax得到的是html(數據類型),而不是純腳本。但jquery冒昧地在腳本標籤中加載並評估它。在它的文檔中,它說 - 「html」:將HTML作爲純文本返回;包含的腳本標記在插入到DOM中時被評估。 - 但我沒有找到任何選項來關閉它。 – NeoWang
這是您瀏覽器的一項功能。如果您插入'
相關問題