无论如何都要加载所有图片和脚本,而不是从当前网页加载,而是在第一次加载时加载整个网站,以便全部缓存。
我知道这可能不是最佳做法,但会派上用场。
答案 0 :(得分:1)
首先,这是个坏主意。这将使您的页面加载速度低于其所需的速度,浪费您的服务器资源和带宽,而这些内容是您网站的访问者甚至可能不需要的(即他们只加载一页)。不过,如果这真的是你想要的,那就让我们这样做:
我们可以使用Javascript动态加载脚本:
SELECT my_func(1, 2, 3)
SELECT * FROM my_func(1, 2, 3);
中,我们定义了从文件到我们要加载的脚本的路径; var scriptUrls = ["a.js","b.js","c.js"];
for (i=0;i<scriptUrls.length;i++) {
var script = document.createElement("script");
script.src = scriptUrls[i];
document.head.appendChild(script);
}
; scriptUrls
创建一个新的DOM元素 - 这会生成一个新的scriptUrls
元素 - 并将其指定为变量document.createElement("script")
的值; <script>
(来源)属性设置为script
; src
方法将脚本元素添加到HTML文档的scriptUrls
(<head>
)。这就是我们加载脚本所需的全部内容。
可以使用Javascript以类似的方式加载图像,但有一些区别:
document.head
.appendChild
在空数组中,我们可以在加载时存储图像对象。您仍然可以使用常规方法var imgs = [];
var imgUrls = ["a.png","b.jpg","c.gif"];
for (i=0;i<imgUrls.length;i++) {
imgs.push(new Image());
imgs[i].src = imgUrls[i]
}
在页面上使用它们;这只是一个临时的事情,允许他们正确加载; imgs
只是您要加载的所有图片的网址数组; <img src="...">
; imgUrls
创建一个新的Image对象(https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/Image)。我们将其添加到imgUrls
数组new Image()
; imgs
(imgs.push
设置为src
数组中的当前项目(imgs[i].src
)。这就是我们加载图片所需的一切。
你会把它作为头部的第一个脚本。就像把所有这些代码放在一个JS文件(即imgUrls
)中并包含它(imgUrls[i]
)。
答案 1 :(得分:0)
是的,但它并不漂亮或不高效。
您需要做的就是在第一页上包含每个脚本,链接,参考,图片,CSS和诸如此类的东西。例如:
<!DOCTYPE html>
<html>
<head>
<script src="script_for_page_1" />
<script src="script_for_page_2" />
<script src="script_for_page_3" />
</head>
<body>
<img src="image_from_page_one" style="opacity: 0" />
<img src="image_from_page_one" style="opacity: 0" />
<img src="image_from_page_one" style="opacity: 0" />
<img src="image_from_page_two" style="opacity: 0" />
<img src="image_from_page_two" style="opacity: 0" />
<img src="image_from_page_two" style="opacity: 0" />
<img src="image_from_page_two" style="opacity: 0" />
<img src="image_from_page_three" style="opacity: 0" />
</body>
</html>