chrome中有很多关于自动刷新的扩展,比如说像“页面自动刷新”和“AutoReloader”之类的可以定时定次刷新,有些智能刷新器还可以在页面发生变化的时候自动刷新。不过反正我是没有找到一款可以起到相当于按下F5键不放手的功能的疯狂刷新器。那些设定时间之类的往往要求刷新间隔为1s的正整数倍。这么慢的刷新速度怎么去刷访?于是我就以chrome已经有的扩展“页面自动刷新”为基础,修改了一款自动疯狂刷新器。在刷某条微博或者某个人人照片访问上很有成效的。
接下来就是非常简单的制作步骤:
首先,当然是要Chrome网上应用商店去下载并安装“页面自动刷新”这款应用。我们可以看到,这款应用就已经设置刷新间隔为5s~30min的自动刷新了。
接下来,找到这个应用安装的位置。我的操作系统是win7专业版,位置在:“C:\Users\(用户名)\AppData\Local\Google\Chrome\User Data\Profile 1\Extensions\edbmfligbmlgmfbbhoamolndhjffanka\1.0.0_0”每个人的位置应该都不太一样,所以可以耐心地找一下。
然后,看到一个叫“background.js”的javascript代码文档,打开,找到如下语句:
function refreshStart(tabID, interval){
var task = customTabs[tabID];
if (task && task.interval != interval){
// update task;
clearInterval(task.handle);
task.stat = 'run';
task.elapsed = 0;
if (interval != undefined) {
task.interval = interval;
}
task.handle = setInterval(function(){
if (task.interval <= task.elapsed) {
chrome.tabs.update(task.id, {
url: task.url,
selected: false
}, function(){
task.elapsed = 0
});
} else {
task.elapsed++;
}
},1000);
customTabs[tabID] = task;
updateIcon(tabID);
//chrome.pageAction.setIcon({tabId: parseInt(tabID), path: iconSet.run});
}
}
这个函数就是控制自动刷新的时间间隔的函数。可以看到,该函数使用了setInterval来制作定时的循环,即语句:
task.handle = setInterval(function(){
if (task.interval <= task.elapsed) {
chrome.tabs.update(task.id, {
url: task.url,
selected: false
}, function(){
task.elapsed = 0
});
} else {
task.elapsed++;
}
},1000);
以1000ms为周期执行其中定义的那个function,而那个
function使用变量task.elspsed来标记是否到了设定的那个秒数。
知道了代码是怎么写的了,然后就好办了。先把1000改成1,这样周期从1000ms变为了1ms就可以快好多了。实际测试发现修改之后限制刷新频率的主要因素成为了CPU速度,于是再删掉一些没有用的但进入循环的语句,刷新频率还可以提高几倍。
最后,测试时刷的是人人网照片的访问量,使用Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz 4核处理器,在刷的同时还在看课件、水人人的情况下,一个小时访问量刷新增加179359的访问量。
P.S. 弱弱的说...我真的不会js...以前也完全没有接触过chrome扩展开发什么的...于是求轻拍...求大神指点...%>_<%