如何处理页面多次加载的问题

原创 2011年03月03日 17:10:00

工作中需要读取一个网页的内容,貌似很简单,但总也读不到完整的内容。经过页面分析,原来该页面的部分内容是通过调用js来获取的。再一看被调用的js文件,相当复杂,立刻让我打起了退堂鼓。。。 为了省点事,加之不用太考虑效率的问题,我就改用WebBrower控件来读取页面,然后再从WebBrowser控件的InnerText属性获取文本内容。

 

但如何从WebBrowser控件来获取文本呢? 我开始在DocumentCompleted事件中读取InnerText,但结果不行,仍然是不完整的内容。后来上网了解到对于动态页面,DocumentCompleted事件其实是不可靠的,你需要自己判断页面是否加载完毕,在加载完毕后再去读取InnerText属性。

 

看了网上的一些做法,没找到简单易行的,最后自己探索了一个方法,对于效率要求不高的情况下,可以考虑使用。

 

1、增加一个Timer,设定好间隔事件。

2、在全局变量中增加一个变量做标志。

3、在WebBrowser的DocumentCompleted事件中把标志设为true;

4、在Timer的Tick事件中检测标志为false则返回,为true则下一步。

5、在Timer的Tick事件中检测WebBrowser的Document属性的All属性(可能是All[1]这样的)的InnerText值,如果出现了页面完成时的标记(根据实际情况设置)则对InnertText进行后续处理,并关闭Timer。否则返回。

6、如果是循环调取页面,那还需要在处理完InnerText后恢复标志的值为false,同时给WebBrowser设定新的Url。

 

综上,其原理就是每间隔一定事件检测一下WebBrowser的状态和属性,直到出现了自己需要的内容再进行处理。该方案可以通过调整Timer的间隔时间获得一个较为理想的处理效率。

Html元素引起多次加载页面的问题分析

Html元素引起多次加载页面的问题,主要分析了button、src、herf三种情况。
  • bojifengyu
  • bojifengyu
  • 2015年11月21日 10:05
  • 177

通过jquery load在list页面多次加载详情页,导致的多form校验以及提交问题

jquery 多次load进来的同一个页面,多form校验,提交
  • superzsen
  • superzsen
  • 2015年05月21日 23:49
  • 1342

解决用tomcat作为web server时,应用被多次加载的问题

出现这种问题时,如果用到了spring及其他涉及到管理应用生命周期的组件时,要特别注意:周期性任务及单例模式的问题,这是个致命的灾难。 这类问题,通常都是在tomcat下配置了多个应用程序时发生...
  • jason5186
  • jason5186
  • 2012年03月04日 12:44
  • 1678

.load() 加载一个页面的一部分数据

详细说明 该方法是最简单的从服务器获取数据的方法。它几乎与 $.get(url, data, success) 等价,不同的是它不是全局函数,并且它拥有隐式的回调函数。当侦测到成功的响应时(比如...
  • hutao1101175783
  • hutao1101175783
  • 2014年09月23日 11:49
  • 3923

WebView 重定向行为导致的多次加载问题

使用 WebView 时,我们通常会重写以下方法: shouldOverrideUrlLoading() onPageStarted() onPageFinished()WebView ...
  • nifanggge
  • nifanggge
  • 2017年05月30日 23:15
  • 2354

一个页面多次调用自定义控件时,注册JS脚本

一个页面多次调用自定义控件时,注册JS脚本  string strBlock = @"  function  " + MethodName + " {document.getElementById("...
  • chenshaolinqing
  • chenshaolinqing
  • 2011年06月27日 17:11
  • 1154

上拉加载更多重复调用

今天帮朋友解决了一个bug.由于是朋友新手的缘故,找了一天也没找到.晚上找到我帮忙.先说下问题:(时间关系,代码就懒得帖出来.全部口述.提醒遇到类似问题的新手朋友注意一下.这是个小问题,很不起眼,但是...
  • Too_greedy
  • Too_greedy
  • 2016年03月16日 01:57
  • 1700

ListView设置滑动到底部自动加载 重复多次加载问题

给listview设置滑动到底部自动加载的时候 当你滑动到底部有时候会一直加载不停,针对这个问题我搞了一种解决方案,看代码下面都有注释/**页数点击之后也得清零,获取数据成功之后增加一页*/ ...
  • Applicaton
  • Applicaton
  • 2015年10月21日 11:33
  • 796

5个Android常见内存泄露及处理方法

http://www.devstore.cn/essay/essayInfo/4187.html?utm_source=tuicool&utm_medium=referral mark一下...
  • anhenzhufeng
  • anhenzhufeng
  • 2016年03月01日 16:15
  • 682

页面初始化datagrid时重复加载两次

jquery创建datagrid有两种方法,一种是在jsp中class="datagrid",一种是js中创建。 如果jsp写了class="datagrid",js中又创建一次,则会造成重复加载的...
  • u013499771
  • u013499771
  • 2015年02月04日 15:23
  • 1274
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何处理页面多次加载的问题
举报原因:
原因补充:

(最多只允许输入30个字)