技术开发 频道

超简单的自动刷新网页!


【IT168技术文档】

  从本周开始公司的产品进入最后的集成测试阶段了,计划这个月底结束战斗,正式对外发版上市!想想这350多号人前仆后继的熬了四年多,还真是有点后怕啊!测试的兄弟们最近比较辛苦,不过他们是在辛苦地给我们提BUG!而我们必须时刻待命,每天都要做到日清,否则不许回家!其实这几天还算挺清闲的,就是快到下班那一刻特紧张,因为如果这个时候飞过来个BUG,就甭想按时坐上班车啦!

  我们内部有一套完整的缺陷管理系统,算是CQ、Mantis、WebPart等几种技术的混血!如果有BUG的话,它会通过OUTLOOK给你发内部邮件的,但是这个不太稳定,经常漏发!所以需要自己随时通过Web版的缺陷系统的【我的任务】页面,查看自己是否有新的BUG,也就是说要不时地F5一下!最近多数时间都是用笔记本在上网,然后不时地去刷新一下【我的任务】页面,就这样刷了几天之后感觉实在不爽!如果有个自动刷新就好了,间隔几分钟让它自动刷一下,再把显示器的自动关闭时间调长一点,那么这个“时刻待命”就简化到动动眼球啦!有了这个懒人的想法之后,我就一直在想如何用最懒得方式来实现呢!

  有人可能会说这个还不容易,在那个页面上加个定时器控件,把时间间隔放在配置配置文件里,然后定时重新Load一下就完了吗!恩!这应该是最普遍的想法了!但是这也是最不可能的做法了!原因很简单,Web版缺陷系统其实是另一个部门的人负责的,找他们特意给你加个这个东西,不是不能,只怕要等到过完年回来再说了!这个办法优点是只需要动嘴不需要动手,缺点是沟通成本比较高,很难立刻实现。

  否掉了第一个想法,对问题有了更进一步的认识:我要做的就是一个可以定时刷新任意一个网页的东西,而我不能对被刷新的网页做任何二次修改!也就是说,我要做的就是“给F5加个定时器”!于是乎很容易想到,这个还不简单,只要随便写个程序,定时打开那个网页不就完了吗!管它使用WinForm还是 WebForm,都一样简单!我权衡了一下!其实还是WinForm吧,WebForm还需要IIS支持,太夸张了吧!而WinForm的问题是如果其他人也要用自动刷,还必须分发客户端程序给他们才行,也挺烦的!但是即使自己写程序很容易,我还是有些懒得做这个事情,不过就是想自动刷新个网页而已,不要这么大动静吧,懒得写呀,应该有更简单的做法!

  因为我的懒惰,第二个想法也被否掉了!于是上网兜了一圈,发现了这么一个东西:<meta http-equiv="Refresh" content="5">,把这句话加在网页的头上,就可以实现每5秒刷新一次当前网页。哈!真是懒人有懒福啊!这个居然可以实现定时刷新当前网页!这个都有了,那么离实现自动刷新任意网页岂不是不远啦!于是很顺利地就找到了<meta http-equiv="Refresh" content="5;url=网址">的写法,可以实现定时打开指定网址的网页,但是问题也来了,这个写法只能执行一次,即5秒后跳转到网址那页,这并没有实现循环刷新的目的。继续搜,找到了一个牛人的方法,分别写A、B两个网页,定时从A跳到B,再从B跳到A,将A和B做成相同内容的网页,如此就实现了定时刷新网页的功能!我的神啊!这个方法真是太有才了!虽然笨得可爱,倒也算是一种实现方法吧!不过别忘了我是没法去改那个要刷新的网页的!到这个时候,想必如果对JavaScrip熟悉的话,通过动态修改网页的属性,估计应该可以很容易实现这个功能了吧,但是我刚好又是JavaScript 盲,怎么办啊!



  其实即使我精通JavaScript我一样是改不了被刷新的网页,多说只能是定时把网页抓过来显示在另一个网页里而已吧!想到这里,突然眼前一亮,使用IFRAME不是可以嵌入其它网页吗!那么我现在有了【定时器】:<meta http-equiv="Refresh" content="5">和【抓网页】的方法<IFRAME></IFRAME>,这个问题完全可以搞定啦!下面是最终的代码:
<!--这里以定时刷新博客园主页为例--> <html> <meta http-equiv="Refresh" content="5"> <body > <IFRAME frameBorder=0 width="100%" height="100%" src="http://www.cnblogs.com" /> </body> </html>
  到此为止,我算是完全实现了当初的超人想法啦![超级懒人简称:超人] 而且实现方式都很懒!几乎是没有什么多余的代码,多了俺也不会啦!把这段代码另存为RefreshMyTask.html,扔到我的共享文件夹里!局域网内任何人想用的话,只需要在命令行里输入\\我的机器名\共享文件夹名\RefreshMyTask.html 即可!哈哈!这下连分发客户端的工作都可以省掉了!别看这段代码简单的不得了,但是它集CS/BS的优点于一身,小巧灵活却功能强大,真是太实用啦!

  写完了这段代码,把工作机的监视器电源管理调整为从不自动关闭,它就这么刷了一整天,直到下班也没刷出个BUG来!整个过程根本不需要我动手干预,只用眼睛的余光偶尔瞥一下就行了!真是好久没这么惬意过了!

  有人可能会不解,不就是自动刷个网页吗,网上一搜一大堆,楼主有必要搞得这么兴奋吗?这个事情怎么说呢,虽然最后这个问题找到了一个非常简单的解决方案!但是这个过程并不简单,开始是因为我的懒惰让我少走了弯路,后来就是解决问题的思路问题,一个问题,思路不同可能实现起来会相距甚远!由此我又想起了那本经典的《Are Your Lights On?》,遇到问题,一定不要急忙就做,先想清楚,再去网上找找有没有成熟的解决方案,搞清楚你能使用的资源,权衡各方利弊,然后再动手也不迟!其实很多问题都是很简单的,只不过我们都是过后才发现这一点的!这么晚了我不睡觉,为了也是跟大家分享解决这个问题过程中思路的变化过程,所以文中重点记录的是思维变化的轨迹,这才是此文的重点。

  -->自动刷新网页,帮你抢火车票!
  又到回家过年的时候了,每年这个时候一般我们是买不到车票的,所以我和同事总是去酷讯上等着,我们一个劲的F5,手都按酸了,只是为了能在第一时间看到最新的火车票转让信息,呵呵,那时太笨啦!几行代码就可以实现自动刷新啦,我们只管盯着点屏幕准备随时打电话就行啦!下面我们基于酷讯来实现一个简单而非常实用的自动刷新最新火车票转让信息的网页:

  代码如下:
<!--最新的从【北京】到【沈阳】的火车票转让信息列表--> <html> <meta http-equiv="Refresh" content="5"> <body > <IFRAME frameBorder=0 scrolling=no src="http://piao.kooxoo.com/search?vFrom=%E5%8C%97%E4%BA%AC&q=%E6%B2%88%E9%98%B3&cp=TicketSale&Cat=sale&T=Ticket" width="100%" height="100%"/> </body> </html>
  简单吧!我这可是造福大众啊!要想查询其他城市之间的信息列表,对于替换src就可以了,这个不用说了吧!
0
相关文章