【fun】自制chrome疯狂刷新器

来源:互联网 发布:昌河飞机工业集团知乎 编辑:程序博客网 时间:2024/05/14 07:11

        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扩展开发什么的...于是求轻拍...求大神指点...%>_<%




0 0
原创粉丝点击