易截截图软件、单文件、免安装、纯绿色、仅160KB

用C#抓取AJAX页面的内容

现在的网页有相当一部分是采用了AJAX技术,不管是采用C#中的WebClient还是HttpRequest都得不到正确的结果,因为这些脚本是在服务器发送完毕后才执行的!
但我们用IE浏览页面时是正常的,所以解决方法只有1个就是采用WebBrowser控件
但是使用Webbrowser你会发现,在DownloadComplete事件中,你根本无法知道页面何时才算是真正的加载完毕!
当然个别有Frame的网页可能会触发多次Complete,即使你采用计数器的办法,即在Navigated事件中++,而在DownloadComplete中做--,也仍然不能得到JS完成执行后的结果,我开始也感觉到非常奇怪,直到后来GG了相关AJAX的文章,明白了其中原委.
最终解决方案就是利用WebBrowser+Timer来解决抓取页面的问题
而其中的关键仍然是页面状态,我们可以利用webBrowser1.StatusText,如果返回"完成",表示页面加载完毕!
示例代码如下:
private void timer1_Tick(object sender, EventArgs e)
        {         
           
             textBox1.Text += webBrowser1.StatusText;     
            if (webBrowser1.StatusText == "完成")
            {
               
                timer1.Enabled = false;
                //页面加载完成,做一些其它的事
                textBox1.Text += webBrowser1.Document.Body.OuterHtml;
                //webBrowser1.DocumentText 注意不要用这个,这个和查看源文件一样的
            }
        }      
        private void Form1_Load(object sender, EventArgs e)
        {
            string Url = "http://cd.mei8.


相关文档:

Developer Support Languages VC++, C# and VB.NET


Welcome to Microsoft Developer Support, Languages team blog! You will find a lot of language related troubleshooting resources here.
Troubleshooting PInvoke Related Issues 
I am back with some more PInvoke Stuff.  Recently I was working on a PInvoke issue which I found interesting ......

Ajax获取后台数据

//ajax 获取数据
//脚本
var showResp=0;
function GetXmlHttpObject(handler)
{
var objXmlHttp = null;
if (document.all)//!window.XMLHttpRequest
{
// 创建IE中的XMLHttpRequest对象“XMLHTTP”
var clsids = ["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP. ......

AJAX中的请求方式以及同步异步的区别请求方式

请求方式,分为GET与POST:
 
GET
 
最为常见的HTTP请求,普通上网浏览页面就是GET。GET方式的参数请求直接跟在URL后,以问号开始。(JS中用window.location.search获得)。参数可以用encodeURIComponent进行编码,使用方式:
 
var EnParam = encodeURIComponent(param);
URL只支持大约2K的长度,即2 ......

ajax原理

 ajax全称Asynchronous JavaScript and Xml ,异步传输。
    异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是帧,它传输的时候要求接受方和发送发的始终保持一致的。
   异步传输是将比特分成小组来进行传输。一般每个小组的一个8位字符,在每个小组的 ......

基于AJAX服务器推Comet实现

数据表words结构
CREATE TABLE `words` (                                                                           & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号