原文:.Net2.0 --Winform结合WebBrowser控件和Socket老技术来实现另类Push~

目前的企业级开发比较流行的是Web2.0技术,但是由于Web技术基于请求--响应的交互模式,使很多效果无法有效的呈现。

 比如在Push技术上面,很多人感到头痛~ 如何让服务器主动请求Browser端~ 这个技术很多技术普通的开发人员都感到很难解决(包括我~呵呵)

    其实要在企业级开发中实现Push技术,难度是有,但是我们要懂得变换方式。 如果技术上一直卡在Push技术的研究上,很浪费时间。下面我讲讲我做的一个"伪Push” :

   一:实现Form与页面的交互

 HtmlDocument htmlDoc = webBrowser1.Document;//得到webBrowser1控件中页面的所有文档

            HtmlElement btnElement = htmlDoc.All["btnClose"];//在文档中找到需要和form交互的元素



            if (btnElement != null)

            {

                btnElement.Click += new HtmlElementEventHandler(HtmlBtnClose_Click);//给这个元素Click事件(元素为Button)加上EventHandler(委托方法名)

            } 

            

我这里给出的是简单的示例 这个示例详细版本来源为博客园一位仁兄~ 感谢~~

  二:实现伪Push

     我们现在已经能够实现form和页面进行交互了~ 那怎么实现Push呢?

   其实我使用form承载页面的原因就是在这里,可能有人会觉得我麻烦~ 为什么不用Ajax动态刷数据呢?这样是可以实现无刷新得到实时的新数据,但是不停的刷服务器和通讯上面都是会冒较大的风险,我说过我们做的是企业级开发,稳定性和安全性都应该考虑到,所以我选择使用form承载web页面,这样的话,一般业务上的工作流转和业务操作都可以用先进的web技术来呈现和执行,另外实时取得数据(停留在某页面上,不用刷新就能得到服务端主动发过来的新数据)在web上还不成熟,只能依靠ajax动态主动请求服务器来实现所谓的Push推进;这样显然不如用老技术:Socket好用~

  到这里大家也该明白我的思路了。  就是使用Socket技术进行信息交互,实现服务器指定某客户端去进行操作,然后通过form和页面的事件交互技巧来实现一个Push效果~



  第一次发技术文章,这个东西我是昨天想到的~ 以前一直没用过,通过在本社区里查找资料,得到一些技术支持。自己也做过实验,证明了这中想法的可行性~  如果各位有什么看法的话 留言给我~

.Net2.0 --Winform结合WebBrowser控件和Socket老技术来实现另类Push~的更多相关文章

  1. winform中WebBrowser控件执行脚本

    在实际应用中我们可能需要WebBrowser控件主动执行我们需要的脚本,执行脚本现在有两种方法. 1.WebBrowser控件加载脚本,简单方便,适用于简短的脚本,无法执行复杂操作. webBrows ...

  2. sp.net2.0中的新增控件BulletedList的一些高级用法

    asp.net2.0新增了一个BulletedList控件,通过它可以以列表形式显示数据,而不必再用Repeater,Datalist等实现相同的效果.今天做程序的时候正好用到了这个控件,就把它的一些 ...

  3. VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法

    http://blog.csdn.net/gnorth/article/details/7258293 分类: WebBrowser MFC 禁止新窗口2012-02-14 15:25 1787人阅读 ...

  4. 浏览器自动化的一些体会5 webBrowser控件之winform和webBrowser的交互

    从winform访问webBrowser,大致就是利用webBrowser提供的解析dom的方法以及用InvokeScript方法执行javascript.这个相对比较简单. 从webBrowser访 ...

  5. C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)控制 WebBrowser 控件的外观和行为

    在 CSDN 上经常看到以下两个问题:1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的三维边框禁止掉?2.在 MFC 应用程 ...

  6. WPF中禁止WebBrowser控件打开新窗口

    一.针对纯WPF的WebBrowser控件: <summary> Suppress Script Errors In WPF WebBrowser </summary> pub ...

  7. 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件

    原文:[WPF]监听WPF的WebBrowser控件弹出新窗口的事件 WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗 ...

  8. Webbrowser控件判断网页加载完毕的简单方法

    一般情况下,当ReadyState属性变成READYSTATE_COMPLETE时,Webbrowser控件会通过触发DocumentCompleted事件来指示网页加载完毕.但当加载的网页包含fra ...

  9. C# Winform WebBrowser控件

    C# WinForm WebBrowser 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时 ...

随机推荐

  1. 玩转Web之JavaScript(一)-----javaScript语法总结(一) 与鼠标操作有关的语法

    click()  对象.click()  使对象被点击. event.clientX  返回最后一次点击鼠标 X 坐标值: event.clientY  返回最后一次点击鼠标 Y 坐标值: event ...

  2. Android决议具体解释

    1.Android手机常见的分辨率 WVGA:800x480 FWVGA:854x480 QHD:960x540 720P:1280x720(SD.standard definition,SD) 10 ...

  3. jstack:将Process Explorer中看到的进程ID做16进制转换,到ThreadDump中加上0x 前缀即能找到对应线程(转)

    原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jd ...

  4. LightOJ 1205 Palindromic Numbers

    数位DP.... Palindromic Numbers Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %l ...

  5. windows rt 扫描二维码

    项目中使用的是ZXing.net,应用商店程序.使用到的dll是ZXing.winmd. 大致思路为,使用MediaCapture捕获图片.获取到CapturePhotoToStreamAsync流, ...

  6. 移动端 iphone touchmove滑到边界(浏览器地址拦及以上) touchend失效解决办法

    在移动端h5页面:尤其那些全屏幕的盒展示切换页面,当用户无意中将手指滑到了 浏览器地址拦以上(中国移动这快区域):此时,手指已经离开屏幕了,但是ios上无法监听到touchend 事件:touchen ...

  7. UDP(socket)数据访问和封装情况C++代码

     配置QT下的pro文件 TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt   LIBS += -lWs2_32 ...

  8. vs2010模板修改

     使用visual studio 2010好久了,也遇到了不少问题,下面跟大家分享一些. 模板修改 说明: 主要工具: 以visual studio 2010作为例子,具体目录可能会根据不同的安装目录 ...

  9. 怎么样eclipse发达国家多重聚合关系maven项目和使用git管理

    最近使用的项目的开发maven,多于maven有项目之间有一定的联系,因此,创建一个单独的,然后,maven聚合管理. 项目采用git要管理代码.由于上传的代码集时,.gitignore不要上传文件. ...

  10. 安装、设置与启动MySql绿色版的方法

    原文:安装.设置与启动MySql绿色版的方法 1.解压 mysql-noinstall-5.1.30-win32.zip(下载地址http://dev.mysql.com/downloads/mysq ...