javascript - 在网络应用程序中缓存所有脚本

标签 javascript jquery dom caching getscript

我有一个非常大的网络应用程序,总共有超过 100 个脚本。目前,当您访问应用中的页面时,它会加载该应用所需的脚本。

问题是,有些页面有很多复杂的脚本,这可能意味着页面需要几秒钟才能加载。

我正在使用的解决此问题的一种方法是,当用户单击按钮以查看该页面的下一部分时,使用 JQuery 的 $.getscript 加载脚本(其中内容是动态添加和从 DOM 中删除的) .

这工作正常并且大大加快了我的页面速度。

我正在阅读其他几篇文章,它们让我想起了浏览器缓存脚本这一事实。

我的问题是,在用户登录后立即加载我的应用程序中的每个脚本会不会好得多?显然,这意味着登录后的第一页需要一段时间才能加载,我会向他们展示“正在加载”微调器或其他东西。

如果我利用浏览器缓存功能,这会大大加快我的应用程序的速度吗?


这就是我现在加载脚本的方式。

在我看来,我有一个“JS”数组,每个 Controller 将该页面所需的脚本推送到:

class Activity extends Controller {

    function __construct()
    {
        parent::__construct();
        $this->view->js = array(
            'Activity2/js/activity.js',
            'Activity2/js/customer.js',
            'Activity2/js/selling.js',
            'Activity2/js/buying.js',
...

然后循环遍历该数组并在页脚中输出:

<?PHP
if(isset($this->js)) {
  foreach($this->js as $js) {
    echo '<script type="text/javascript" src="' . WROOT . Vs . $js . '"></script>';
  }
}
?>

最佳答案

我认为下载 100 x 1k 文件比下载“1 x 100kb”文件要慢。 生成单个 js 而不是在页面中包含 100 个脚本标记的 php 脚本怎么样?

想想那些必须检查是否缓存了 100 个或更多文件的糟糕浏览器 ;)

此答案特定于您在其中编写了大约 100 个 js 文件的问题以及您的加载方式。您还应该看看 AMD 和 require.js 技术。

D.

关于javascript - 在网络应用程序中缓存所有脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288445/

相关文章:

javascript - 根据它们的数量在html中对称对齐相同大小的框(divs)

javascript - 在通过 AJAX 将数据发送到资源之前验证表单。 Liferay 7.3.5

javascript - cakephp div 和按钮切换

javascript - 将输入字段添加到 div 容器 (javascript)

java - 如何刷新 Selenium 中的 DOM 树以便显示新生成的元素?

javascript - 从 Vue.js 中的 JSON 文件导入数据而不是手动数据

javascript - AngularJS + Jasmine : Comparing objects

javascript - 为什么在不涉及 iframe 时检查 iframe 父函数返回 true?

javascript - 使用 jquery/javascript 选择 n 个元素中的替代框

javascript - document.querySelector 和 document.body.querySelector 有什么区别?