2013-10-10 41 views
2

我有一个非常大的Web应用程序,总共有超过100个脚本。目前,当您访问应用程序中的页面时,它将加载它需要的应用程序的脚本。在Web应用程序中缓存所有脚本

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

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

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

我正在读几个其他职位,这让我想起了浏览器缓存脚本的事实。

我的问题是在用户登录后立即在我的应用中加载每个脚本会好很多吗?很显然,这意味着登录后的第一页需要一段时间来加载我要用“加载”微调器或其他东西来呈现它们的位置。

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


这就是我现在如何加载脚本。

我认为我有一个“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>'; 
    } 
} 
?> 
+0

是的,当然。不一定要一次完成,而是在页面本身上加载每个页面需要的任何脚本。第一次会很慢,但后续命中会很快。 – Abhitalks

+0

@abhitalks不幸的是,情况并非如此。当我拥有一切特定于页面的加载时,无论您刷新或返回它多少次,该页面都非常缓慢。 – imperium2335

+0

你是如何加载脚本的?脚本标签? – Abhitalks

回答

0

我认为下载100 x 1k文件比下载“1 x 100kb”文件要慢。 怎么样一个PHP脚本,生成一个单一的JS,而不是在你的页面有100个脚本标签?

想的差浏览器,必须检查100个以上的文件缓存与否;)

这个答案是特定于您的问题,您写了约100 JS文件和要加载的方式。你还应该看看AMD和require.js技术。

D.