2010-06-04 84 views
2

我正在使用JSONP /動態腳本標記技術來執行跨域AJAX(沒有XML,但你知道我的意思)。如何刪除跨域ajax添加的腳本標記?

最初,我寫了自己的解決方案,但我無法想出一個優雅的方式來刪除執行後的腳本。我的策略只是傳遞一個ID,並在回調中刪除相關的腳本,但我意識到這會阻止緩存,我不想這樣做。

了一句這樣的:

1)動態插入:<script src="http://example.com/handler.php?callback=x&scriptid=y"></script>

2)腳本加載並運行x(); removeScript(y);其中removeScript從頭元素中取出適當的腳本元素。

它工作的很好,但被破壞的緩存。所以我很高興學習jQuery提供了一個jsonp方法並快速實現它,認爲他們已經弄清楚了這一切。相反,jQuery將腳本元素留在那裏。

是否有一個乾淨的方法來刪除這些元素?

+0

離開它有什麼危害,或者你爲什麼要刪除它? – Justin 2010-06-04 18:10:26

回答

-3

爲什麼要刪除它們?只有網絡極客纔會查看網頁的源代碼,並且很有可能您不會通過網絡極客來獲得網站支付。它們是無害的,所以你不必爲了去除標籤而煩惱。

+3

-1因爲這個觀點並不是真正關於「網絡極客」 - 它是關於加載DOM樹的內存需求。最終,Fletcher創建的腳本標記數量將溢出瀏覽器用於存儲DOM的內存,並且腳本可能會停止執行(Chrome中就是這種情況)。你有效地泄漏了記憶。 – ivans 2010-09-20 06:58:58

+0

@ivans Chrome瀏覽器停止執行Javascript需要多少'