当前位置: 首页 > news >正文

网站建设武汉/seo新人怎么发外链

网站建设武汉,seo新人怎么发外链,wordpress 文章页面失败,网站架构制作最近写了个软件叫WebAutoScript,目的用于,网页的自动操作处理,就是说,所有你在网页上面的操作,都可以录到一个脚本中,然后可以回放这个操作过程。。我是说任何过程。 程序是用C#写的,其中遇到了…

最近写了个软件叫WebAutoScript,目的用于,网页的自动操作处理,就是说,所有你在网页上面的操作,都可以录到一个脚本中,然后可以回放这个操作过程。。我是说任何过程。

程序是用C#写的,其中遇到了一个难题,对于网页,我是用C#内置的WebBrowser控件控制,但是这个控件有个问题,就是不能准确判断网页什么时候最终装载完毕,如果这个不能判断的话,我根本不可以判断什么时候执行下一个动作,因为网页还没有打开,不可能去点击还没有出现的按钮等。。。google了海内外,竟然没有人搞定过,除非不用这个控件,虽然有别的控件可以,如AxWebBrowser,但是用另外的控件,又会出现另外的问题,所以最后决定还是用内置的WebBrowser,但是怎么解决这个难题呢。。。

为什么这个控件不能准确判断网页什么时候装载完毕呢,那是因为现在的网页一般都有多个frame,一个frame相当于另一个网页,在不断装载,消息不断的触发,所以难以判断触发完成的是那个网页。。。

网上一般都是说根据Browser_DocumentCompleted,Browser_Navigated,Browser_Navigating这三个消息来判断的,用什么计数器啦,还有判断IsBusy,StatusText等。。以上或多或少对于一些网页是可行的,对于另一些网页却又有另外的意外,所以总的来说,不能通用准确。。。

总得来说,一个网页最终装载完毕,不管它里面多少个frame,最终完成只有一次,也是可以提供给程序可以执行下一步操作的消息。

怎么解决呢,其实,WebBrowser的工作机制大概是这样的,在url上打上www.163.com,这时候,WebBrowser会开始装载www.163.com这个网页,触发一个Browser_Navigating,ReadyState置为非Complete,IsBusy置为true,StatusText置为"请求的url内容",这个文档完毕后,触发一个Browser_DocumentCompleted,同时,ReadyState置为Complete,IsBusy置为false,StatusText置为"完成",如果通常都会有frame,如www.163.com/kk.jsp#fsd什么的,WebBrower就会触发Browser_Navigating,ReadyState置为非Complete,IsBusy置为true,StatusText置为"请求的url内容",再去装载那个frame,完毕后,触发一个Browser_DocumentCompleted,同时,ReadyState置为Complete,IsBusy置为false,StatusText置为"完成",剩下的frame,余次类推。

上面的过程有一个特点,从主文档到frame的过程,ReadyState置为Complete,IsBusy置为false,StatusText置为"完成",这个时间是很短的,Browser_DocumentCompleted触发一下就过去了,如果还有frame,很快就会把状态搞成非完成,所以根据这个特点。。。我们可以找一种方法来判断什么时候才是最终完成。。。

我的方法是:在WebBrowser开始装载www.163.com这个网页的时候,触发Browser_Navigating的时候,我打开一个timer,在那里监控,Interval为200ms,如果MainBrowser的ReadyState == WebBrowserReadyState.Complete && IsBusy == false的话,证明现在有两种情况,WebBrowser已经最终装载完毕,或者是刚装载完结一个,很快就会装载另外一个frame,不管,先记录这时候的DocumentText,DocumentTitle,DocumentTitle,Url,等到下一个200ms,timer再判断现在的WebBrowser的ReadyState == WebBrowserReadyState.Complete && IsBusy == false,如果不成立,则把记录的状态清掉,那些DocumentText,现在肯定还没有到最终完成状态啦,但是,如果成立的话,把现在的WebBrowser的状态和上一次timer记录的状态对比,如果不相等,那也只能说明还没有到达最终状态,如果相同,设置一个记数器,加1,就这样,如果这个计数器最终能够达到5次,就说明WebBrowser最终完成装载了。。。简单的说,就是加多一个timer来监控WebBrowser几个重要状态值,如果在5*200ms一秒内,其状态没有变化过,就证明,其已经最终装载完毕。。。

这种方式,百试百灵,没有遇到过误判的情况,呵呵,强吧,MS没有完善的地方,咱们自己想办法呗。。。

http://www.jmfq.cn/news/5198077.html

相关文章:

  • 用建站ABC做的网站 怎么营销/全国新增确诊病例
  • 如何做内网站的宣传栏/微信指数官网
  • 做动态网站有哪些技术路线/推广网站排名优化seo教程
  • 宝安做网站怎么样/线上推广有哪些渠道
  • 如何建网络营销网站/口碑营销属于什么营销
  • 网站上线之前怎么做推广/链接交换
  • 做网络竞拍的网站需要什么/北京seo平台
  • 无代码开发原理/泰州百度seo
  • 网页效果图设计与网页制作/杭州seo网站推广排名
  • 宣传海报在什么网站做/广西网络优化seo
  • 电子商务智能建站/怎么建立信息网站平台
  • 网站设计规划的创意/seo网络营销案例分析
  • 小说网站自动采集/2023新闻热点事件
  • app开发与网站开发的区别/线上运营推广方案
  • 二七网建站/优化服务内容
  • 衣服 div网站/北京搜索引擎优化seo
  • 网站建设网站建/seo网络推广优化
  • 响应式网站 解决方案/网络优化需要哪些知识
  • 大连做网站排名/百度广告客服电话
  • 唐山网站建设找汉狮/安卓手机优化大师官方下载
  • 朱腾鹏个人网站/常用的搜索引擎
  • 网站建设方案怎么写/亚马逊关键词搜索器
  • 做电影网站服务器/成都网络优化托管公司
  • 怎么做网站软件/必应搜索引擎首页
  • 58同城建网站怎么做/网络热词有哪些
  • 百度推广要不要建网站/新浪舆情通官网
  • 东营做网站seo/营销型网站模板
  • 涿州网站建设/市场调研表模板
  • 附近广告设计与制作/站长工具的使用seo综合查询运营
  • 大同推广型网站开发/浏览器下载安装