Javascript 在web应用程序中缓存所有脚本

Javascript 在web应用程序中缓存所有脚本,javascript,jquery,dom,caching,getscript,Javascript,Jquery,Dom,Caching,Getscript,我有一个非常大的web应用程序,总共有100多个脚本。当前,当您访问应用程序中的页面时,它将加载该应用程序所需的脚本 问题是,有些页面有很多复杂的脚本,这意味着加载页面需要几秒钟 我正在使用的一种解决方法是,当用户单击按钮查看页面上的下一部分(在该部分中动态添加内容并从DOM中删除内容)时,使用JQuery的$.getscript加载脚本 这工作正常,并加快了我的网页相当多 我在读其他一些帖子,这些帖子提醒我浏览器缓存脚本的事实 我的问题是,在用户登录后立即加载应用程序中的每个脚本是否会更好?显

我有一个非常大的web应用程序,总共有100多个脚本。当前,当您访问应用程序中的页面时,它将加载该应用程序所需的脚本

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

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

这工作正常,并加快了我的网页相当多

我在读其他一些帖子,这些帖子提醒我浏览器缓存脚本的事实

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

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


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

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

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”文件慢。 如果一个php脚本生成一个js,而不是页面中有100个脚本标记,那该怎么办

想想那个可怜的浏览器,它必须检查是否缓存了100个或更多的文件;)

这个答案专门针对您的问题,您在其中编写了大约100个js文件以及加载方式。您还应该了解AMD并需要.js技术


是的,当然。不一定是一次性的,但是在页面上加载每个页面需要的脚本。第一次会很慢,但随后的点击会很快。@abhitalks不幸的是,情况并非如此。当我加载特定于页面的所有内容时,无论您刷新或返回页面多少次,页面都非常慢。您如何加载脚本<代码>脚本tag?@abhitalks请查看我的编辑。听起来您需要有条件地加载,请检查…afaik代码优化如下:编写更少/更好的代码,加快机器/互联网速度,只加载您需要的内容,只做您需要的;)