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