- UID
- 146387
- 帖子
- 24
- 精华
- 0
- 贡献
- 0
- 推广
- 0
- 有效BUG
- 0
- 注册时间
- 2008-9-16
|
6#
发表于 2010-4-6 16:41
| 只看该作者
opera 论坛:引言:
很早以前我就在深度和OperaChina的置顶帖(http://www.operachina.com/viewtopic.php?f=41&t=3042)里下载过同名脚本,个人觉得page-prefetcher.js是Opera的最有实用价值的用户脚本,可是用起来却发现几乎没什么作用,便数次烦扰ezibo、cowboy21等大侠一步步改进,现在无论是预读准确性、资源占用率还是可定制化程度日趋完美。
功能和作用:
此JS是快进和超级快进功能的加强,类似于GECKOR核心的预下载技术,或者是GOOGLE WEB ACC的同样的效果,既可以在网页看到包含“NEXT”“下一页”之类的链接时,预先下载网页,也可自定义根据自定义规则和URL预读下一页。简而言之:该脚本通过预读下一页,加速打开网页,等效于提高了网速,对以图片为主的页面尤为明显。Opera以速度快等特点而著称,这个脚本将使您的Opera的速度更上一层楼,用该脚本浏览某些网页就像网速提升了很多倍一样。同时,可极大提高鼠标手势/按钮“前进/快进/超级快进”打开的URL的准确率。
使用方法:
一、把该脚本复制到浏览器的用户脚本目录。菜鸟不知道该目录在何处的话,在地址栏输入“opera:config#UserPrefs|User JavaScript File”(不带引号,下同)即可查看用户脚本目录的路径,没有的话可自行设置。
二、为使该脚本很好地发挥作用,“首选项-历史-检查缓存页面是否已在服务器上更新-检查图片”选项不应少于“每5分钟”,推荐“每5小时”或更长。
三、为了更好地使用鼠标手势“前进/超级快进”,强烈建议在鼠标手势的配置文件中这样修改:FlipForward = "Forward | Go to page, "javascript:ezjsfastforward();""当然,依自己习惯,FlipForward也可以改为GestureRight等,菜单、按钮也类似。
四、若想使该脚本只对特定的站点起作用的话,可在该脚本的开头的加入如“// @includehttp://bbs.winzheng.com/*”这样的语句;若想使该脚本对特定的站点不起作用的话,可在该脚本的开头的加入如“// @exclude http://bbs.winzheng.com/*”这样的语句,更多高级设置方法详见后文。
开关:
var useJsNext=false; //JSNEXT预读类型开关,默认是false,即不启用var ShowDebug=false; //调试开关,默认是false,改为true后会在最下显示预读的内容var ChangeTitle=false //标题栏显示开关,默认是false,改为true后会显示“--1p,2p,3p,4p”等字样
预读类型:
六种预读类型,分别是:
INC URL地址加一,例如 http://publish.it168.com/2008/0331/20080331028302.shtml 这种页面;
COMPINC URL地址补全和加一,例如对http://soft.deepin.org/read.php?tid=671589会预读http://soft.deepin.org/read.php?tid=671589&page=2页面,而对http://soft.deepin.org/read.php?tid=671589&page=2则会预读http://soft.deepin.org/read.php?tid=671589&page=3页面;
NEXT 读取页面中“下一页”“后一页”等字样的链接;
NEXTINC 是先读取页面中的“下一页”“后一页”等字样,如果没有找到,就对URL加一。
PIC 有些网页下一页的图片链接的alt属性多数都包含“下一页”几个字,预读“下一页”图片链接。
JSNEXT 通过JS预读,需通过开关开启此功能。
默认类型为NEXT。
超级快进的站点设置:
关于什么是超级快进,在老版page-prefetcher.js的帖子http://soft.deepin.org/read.php?tid=551731&fpage=0&toread=&page=1的43楼的有ezibo图文并茂的讲解。
已经在脚本中加了部分网站和URL中带bbs字符串的处理:
//http://bbs.operachina.com/viewtopic.php?f=15&t=33216&st=0&sk=t&sd=a&start=20
siteDefineArr[sdi++]=[/www\.dream2008\.cn/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/bbs\.44cn\.com/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/bbs\.pcbeta\.com/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/bbs\.dmzj\.com/,"COMPINC",/\/viewthread\.php/,"&page=","",""];
siteDefineArr[sdi++]=[/www\.520dx\.com/,"COMPINC",/\/viewthread\.php/,"&page=","",""];
siteDefineArr[sdi++]=[/bbs\.mumayi\.net/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/bbs\.bt5156\.com/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/opda\.net\.cn/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/opda\.net\.cn/,"COMPINC",/\/viewthread\.php/,"&page=","",""];
siteDefineArr[sdi++]=[/www\.minisoyo\.com/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/bbs\.hoopchina\.com/,"COMPINC",/\/read\.php/,"&page=","",""];
siteDefineArr[sdi++]=[/bbs\.imp3\.net/,"COMPINC",/\/viewthread\.php/,"&page=","",""];
siteDefineArr[sdi++]=[/www\.tektalk\.cn/,"INC",/\/page/,"","",""];
siteDefineArr[sdi++]=[/operachina\.com/,"NEXT",/\/viewtopic\.php/,"&start=","","20"];
siteDefineArr[sdi++]=[/deepin\.org/,"COMPINC",/\/read\.php/,"&page=","",""];
//~ siteDefineArr[sdi++]=[/deepin\.org/,"INC",/\/read-htm/,/-fpage-\d?-toread-\d?-page-/,/\.html$/,""];
siteDefineArr[sdi++]=[/deepin\.org/,"COMPINC",/\/read-htm/,"-fpage-0-toread--page-",/\.html$/,""];
//http://bbs.kafan.cn/thread-388668-2-1.html
siteDefineArr[sdi++]=[/bbs\.kafan\.cn/,"INC",/\/thread/,"",/-\d\.html$/,""];
siteDefineArr[sdi++]=[/bbs\.winzheng\.com/,"COMPINC",/\/viewthread\.php/,"&page=","",""];
siteDefineArr[sdi++]=[/forum\.xitek\.com/,"COMPINC",/\/showthread\.php/,"&pagenumber=","",""];
siteDefineArr[sdi++]=[/bbs\.btchina\.net/,"COMPINC",/\/showthread\.php/,"&pagenumber=","",""];
siteDefineArr[sdi++]=[/bbs.+163\.com/,"NEXT","","","",""];
siteDefineArr[sdi++]=[/dzh\.mop\.com/,"NEXT",/\/topic\/readSub/,"","",""];
siteDefineArr[sdi++]=[/bookba\.net/,"NEXT",/\/html\/book/i,"","",""];
siteDefineArr[sdi++]=[/ngzw\.com/,"NEXT",/\/html\/book/i,"","",""];
siteDefineArr[sdi++]=[/qidian\.com/,"NEXT",/\/bookreader/i,"","",""];
siteDefineArr[sdi++]=[/publish\.it168\.com/,"INC","","","",""];
siteDefineArr[sdi++]=[/ifeng\.com/,"NEXT","","","",""];
siteDefineArr[sdi++]=[/pic\.xinmin\.cn/,"PIC","","","",""];
siteDefineArr[sdi++]=[/www\.77shu\.com/,"JSNEXT",/\/html\/book/i,"","",""];
siteDefineArr[sdi++]=[/verycd\.com/,"COMPINC",/\/sto/,"page","",""];
genDefineArr[gdi++]=["","INC",/\/thread/,"",/-\d\.html$/,""];
genDefineArr[gdi++]=["","COMPINC",/\/dispbbs\.(asp|php)|\/(read|viewthread|showthread)\.php|\/viewtopic\.php/,"&page=","",""];每行对应一个正则表达式规则,不懂的人可依葫芦画瓢,可参见深度的《打造自己的网络加速器page-prefetcher,收集地址》(http://soft.deepin.org/read.php?tid=671589),完整的教程请见《正则表达式30分钟入门教程》(http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm)。亦可在深度对《剩蛋发红包,极大的提升浏览速度》(http://soft.deepin.org/read-htm-tid-896575.html)回帖提供网址请ezibo写规则。并非所有的站点都要通过超级快进才能预读,对大多数页面默认的规则足矣,只有小部分站点才需要把站点信息添加进去。
更新历史:
2009-09-09 支持更多网站。
2009-03-11 预读方式由以前的通过iframe改为通过xml来进行,从根本上解决拍拍网同类技术的网页的兼容性问题。
2009-02-14 彻底解决拍拍网兼容性问题,感谢footcat的反馈。
2009-02-01 修复编码问题导致的090103版完全失效的问题,感谢lwjcxy的反馈;添加注释。
2009-01-03 解决如http://www.iieye.com/ 不能登录、天涯左边菜单显示的问题。
2008-12-28 新增JSNEXT预读类型;进一步优化,准确预读各种论坛和图片。
2008-12-17 新增PIC预读类型;开始对像卡饭论坛这样的倒数第二个数字加一的URL的支持;修改标题栏显示方式。
2008-08-05 把所有字符都翻了一遍,预读更准确。
2008-07-28 修正了对特殊字符的处理。
2008-06-11 对站点定义加了类型,达到更灵活准确的定义。
2008-05-26 去掉了不好用的js脚本翻页支持。
与oAutoPagerize.js的关系
我以前也很喜欢用oAutoPagerize.js,但自从page-prefetcher.js开始改进后我就一步步摒弃了前者。oAutoPagerize.js就是把后面的页面一页一页地拼接到本页上来,当您打开的下一页足够多的时候资源占用非常大,而且能发挥作用的网页非常有限,手动添加页面规则又极其麻烦,非菜鸟能胜任。而这个脚本则在仅仅预先读取当前页的下一页,资源占用小,适用面广,易于操作。两者有冲突的可能,但这并不意味着不能共存,想保留oAutoPagerize.js的话,建议把oAutoPagerize.js里要使用的站点信息添加到page-prefetcher.js的“// @exclude”里面。
鸣谢:
原帖在http://soft.deepin.org/read.php?tid=671589,作者:Jo?o Eiras、ezibo。同时感谢skywalker303提供的新思路。建议者和推广者就是我自己xxtzz2z 。不知道是深度菜鸟太多还是怎么的,对这么好的脚本不但没有趋之若鹜,反而冷清得使帖子很快沉下去了,故将此脚本转发于此。感谢ezibo,没有他,page-prefetcher.js就不会由一个鸡肋似的丑小鸭一步步蜕变成如今趋于完美的白天鹅。欢迎大家提出宝贵的意见和建议。 |
|