2010-06-04 45 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需要多少'