Javascript / jquery:在执行一次脚本标记后清理

时间:2011-10-26 20:46:42

标签: jquery long-polling

我有一个页面,它使用长轮询技术从服务器中获取部分数据,创建包含IIFE表达式的脚本标记,如下所示:

<script>
  (function(){ 
      $("#blah").append("Some new data");
  })();
</script>

如果我收到很多这些多余的<script>标签,特别是如果新数据相对较大,我担心它会开始放慢页面的速度。
在执行后从DOM中删除脚本标记会有任何性能上的好处吗?

<script id="thescript">
  (function(){ 
      $("#blah").append("Some new data");
  })();
  $("#thescript").remove();
</script>

编辑:我觉得这个问题已经成为一个火车残骸,目的还不清楚。道歉。真的最终寻找不同问题的答案,这是一个误入歧途的步骤。

1 个答案:

答案 0 :(得分:2)

您只需返回JavaScript并使用jQuery的$.getScript()方法。

编辑:

也许这会是一个更直接的答案。

如果您将脚本请求为纯文本,则可以将其附加到头部并将其删除。

$.get(url,function(str){
  var head = $("head"),
      script = $(str);
  head.append(str);
  str.remove();
},"text");

我实际上没有尝试过这个,所以我不能100%确定它会起作用。虽然听起来很合理。

另一种选择是将脚本加载到特定元素中,然后清空元素。它应该具有相同的效果。

再次编辑:您可以将脚本标签粘贴到一个特定元素的内部,然后在ajax调用成功时删除该元素,因为您返回的不仅仅是脚本标记。