javascript - 缓存 Web 应用程序中的所有脚本

原文 标签 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 - 缓存 Web 应用程序中的所有脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288445/

相关文章:

javascript - RNCalendarEvents.saveEvent() 问题 错误 : No calendar has been set

javascript - 带有 div 的 jQuery 不起作用

javascript - 检测何时可以使用Applet

javascript - 仅执行作为字符串注入(inject)的部分代码

javascript - 视差动画滚动效果

javascript - 表单提交仅在第二次点击时提交,需要在 ES6 中回调

javascript - CoffeeScript遍历方法

javascript - 如何从轴上捕捉点击事件滴答jqplot,highcharts,flot

javascript - 如何检查JQuery中是否存在元素?

javascript - 不能将DOM节点的属性用作XPath/CSS选择器查询的过滤器