我有一个非常大的网络应用程序,总共有超过 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/