如何解决仅运行当前页面所需的javascript,最佳方法?
| 因此,我知道最好在整个网站上使用一个JavaScript文件来限制http请求。因此很显然,某些页面只需要一些javascript。仅运行当前页面所需的javascript的最佳方法是什么? 例如。if(page==\'home\'){
//run javascript require for the home page
}
也许这不是问题,并且如果在页面上未找到定位元素,那么javascript会正常失败吗?我只想了解此javascript结构的最佳做法。
解决方法
将逻辑封装在函数中。然后只需通过
\"onload\"
或页面中的嵌入式函数调用在每个页面中调用所需的函数即可:
<script type=\"text/javascript\">
yourFunctionForThisPage();
</script>
编辑:只是为了澄清:我的回答是假设单个.js文件的(暗示)约束。正如其他人指出的那样,尽管您保存了HTTP请求,但这并不一定是个好主意:浏览器仍然必须为每个页面解析文件中的所有代码(无论是否使用)。老实说,拥有一个包含所有内容的全球站点范围的js资源是非常不寻常的。从逻辑上将js拆分为各种文件(即库),可能是一个更好的主意。这些库可以是基于页面的-即特定页面的特定代码,也可以是基于算法/任务的代码,您可以将它们包含在任何需要它们的页面中。
,这可行吗?
虽然最好每页只有一个Javascript文件来减少请求数量,但这可能不可行。尤其是您想要的方式。
如果您要询问如何将各个页面的各个脚本合并为一个脚本,然后仅运行与特定页面相关的那些部分,那么这是您不应该做的。与一个简短的集成脚本相比,拥有一个包含很多脚本(又考虑到可维护性)的巨大文件对您有什么好处?如果您将脚本数量保持在较低水平(即低于10个),则不必担心。
最大的缺点是浏览器将加载完整的脚本文件,这意味着将花费更多的时间来解析它们,并消耗大量的资源来使用它。我强烈建议您反对这种技术,即使它看起来很有趣...
其他可能性
问题是每页的Javascript文件数量很少。根据您所使用的服务器端技术,有一些工具可以将多个脚本文件组合为一个,因此每个页面仅会请求一个脚本文件,该脚本文件将组合该特定页面将使用的所有那些脚本。服务器上要完成此任务有些开销,但是只会有一个脚本请求。
你得到什么?
每个页面只有其需要的脚本
单个脚本文件较小,因此易于维护
每个请求的脚本大小很小
浏览器解析和资源消耗保持较低
,在页面上知道您需要什么,并使用脚本加载器(如labjs)。
另外,请记住,您的特定案例可能与其他案例不同,因此您可能需要进行一些测试,以验证例如拥有5个小文件是否比1个大文件好(或更糟)。
确保唯一的方法是自己测试不同的选项,并提出合适的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。