将javascript置于部分内容中是否有效?

时间:2014-01-28 09:29:21

标签: javascript ajax single-page-application

在我们当前的设计中,我们有几个部分与脚本配对,充当客户端控制器。这些部分是通过ajax加载的。

示例:

employee.jsp

<div id="employee">
  <input type="text" name="fullname" />
  <input type="submit" value="Submit" id="employee-submit" data-bind="click : submit"/>
</div>
<script src="employee.js"></script>

我在这种做法中看到的最大问题是它不断缓存脚本。如果缓存不是问题,我为什么要远离这种做法呢?还有其他网络开发者这样做吗?

1 个答案:

答案 0 :(得分:1)

在内容中间没有脚本标记的主要原因(至少没有async和defer属性 - 每个浏览器都不支持)是因为它们可能阻止渲染它们之后的所有内容。浏览器无法预测在那里会有document.write输出HTML到文档。因此,必须首先下载脚本并执行它,然后再继续解析并呈现网站的其余部分。优化的浏览器可能会乐观地继续执行它,然后回溯以防脚本确实导致输出发生变化。有些人这样做,对那些浏览器的影响要小得多。

由于性能原因,建议不要在内容中使用外部src标记脚本标记。这不适用于内联JavaScript,例如设置某些变量或在生成的内容上安装事件处理程序。它可能不是很漂亮,但远不如性能损失。您也可以稍后使用它们加载外部脚本。例如,这就是Google Analytics加载更大的跟踪脚本的方式。