我有一个页面,它使用长轮询技术从服务器中获取部分数据,创建包含IIFE表达式的脚本标记,如下所示:
<script>
(function(){
$("#blah").append("Some new data");
})();
</script>
如果我收到很多这些多余的<script>
标签,特别是如果新数据相对较大,我担心它会开始放慢页面的速度。
在执行后从DOM中删除脚本标记会有任何性能上的好处吗?
<script id="thescript">
(function(){
$("#blah").append("Some new data");
})();
$("#thescript").remove();
</script>
编辑:我觉得这个问题已经成为一个火车残骸,目的还不清楚。道歉。真的最终寻找不同问题的答案,这是一个误入歧途的步骤。
答案 0 :(得分:2)
您只需返回JavaScript并使用jQuery的$.getScript()
方法。
编辑:
也许这会是一个更直接的答案。
如果您将脚本请求为纯文本,则可以将其附加到头部并将其删除。
$.get(url,function(str){
var head = $("head"),
script = $(str);
head.append(str);
str.remove();
},"text");
我实际上没有尝试过这个,所以我不能100%确定它会起作用。虽然听起来很合理。
另一种选择是将脚本加载到特定元素中,然后清空元素。它应该具有相同的效果。
再次编辑:您可以将脚本标签粘贴到一个特定元素的内部,然后在ajax调用成功时删除该元素,因为您返回的不仅仅是脚本标记。