JavaScript 遍历页面链接, 并全部打开
接上一篇 路由器上 nginx 博客添加 fastcgi 缓存, 虽然有了缓存, 但是第一次访问的时候, 仍然比较慢, 怎么才能让用户永远点不到第一次呢? 就是服务器自己要 warmup, 如何让自己的博客系统 warmup 呢, 可以自己先遍历页面一遍.
打开 chrome 浏览器的 console, 执行如下代码(按需修改):
// 打开新的浏览器 tab, 并且返回 tab 的句柄
function openInNewTab(url) {
var win = window.open(url, '_blank', "left=300,screenX=100,resizable,scrollbars,status");
win.focus();
return win;
}
var newLink;
var most = 10; //最多并存的 tab
var winArr = new Array(); // 存放 tab 句柄的数组
var allLinks = $$("a"); // 得到所有的页面链接, 不是 jQuery方式哦
var cur = 0;
var urlMap = {};
// 间隔时间执行的函数
function loopStart() {
try {
newLink = allLinks[cur++].href;
if (urlMap[newLink]) {
// 已经打开过, do nothing, just continue
} else {
urlMap[newLink] = "yes"; //放入 map,表示处理过
if (most < winArr.length) { //达到最多, 关闭最早
winArr.shift().close();
}
// 只处理本站的链接
if (newLink.indexOf("tianxiaohui.com") > 0) {
console.log(newLink);
winArr.push(openInNewTab(newLink));
}
}
setTimeout(loopStart, 1000);
} catch (ex) {
console.log(ex);
}
}
setTimeout(loopStart, 1000);
可能会遇到一个问题, 就是新页面打不开, 会出现如下状况, 这个页面默认被 block 了, 需要手动解封: