javascript - 将小 js 文件合并为一个大文件

标签 javascript php html web

我想整理我的 php 网站上使用的 js 代码以提高加载速度。目前,我在每个网站中都包含了所需的 js 文件。 我的计划是将所有 js 文件合并为一个大文件。并非每个页面都使用所有 js 代码,因此我开始了一些操作,但不知道这是否有意义。

我已经读过这篇文章One JS File for Multiple Pages但是 Paul Irish 的方法对于我(目前)作为初学者来说太复杂了。

这是我的方法: 我创建文件 core.js 并在每个网站上调用它,例如..

<script src="js/core.js"></script>  

在 core.js 中,我首先获取相应页面的名称。

var path = window.location.pathname;
var page = path.split("/").pop(); 
var page_name = page.slice(0, -4); 

然后我检查哪个网站需要哪个js脚本(伪代码)。

if (page_name == 'xyz'){
execute this code which is only used on this site
}

if (page_name == 'abc' || 'xyz' || 'def'){
execute another code which is used on multiple sites
}

if (page_name == 'ghi' || 'jkl' || 'mno' || 'xyz'){
include jquery for multiple sites
}
...
...

这对我来说意味着很多工作,因为我有很多js,所以我想先问一下这是否是一个很好的整理解决方案。

顺便说一句:我在网站上放置的 js 代码不会经常更改。

谢谢

米施

最佳答案

您的问题的解决方案可能类似于:

if(selector) {
 //run code
}

仅当特定选择器存在时,才会运行 block 内的代码。这样你就不必经历获取页面名称、分割和切片字符串等所有麻烦(这也容易出错)。

假设您想在某个节点上添加一些innerHTML,它看起来像这样:

function bar (text) {
  alert(text)
}

if(document.getElementById('#foo')) {
   bar('#foo exists!')
}

这样,只有当 id 为 #foo 的节点存在时,才会调用 bar

关于javascript - 将小 js 文件合并为一个大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37588121/

相关文章:

javascript - Java 在缓存中保存 JSP 页面

php - 如何将 PHP 数组返回给调用它的 javascript 函数

php 变量包含字符串和替换

php - 防止恶意外部脚本

javascript - HTML5 Canvas 删除绘制的对象?

javascript - SVG/JavaScript : Trying to select and change polygon point

javascript - ng-init 最初没有获取范围值

javascript - 改变所有 previous sibling 姐妹和堂 sibling

html - CSS @font-face 在我的 CMS 中不起作用

javascript - 动态变化宽度时闪烁