| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 760 人关注过本帖
标题:帮我看下这段代码的详细意思
只看楼主 加入收藏
chenguoxing517
Rank: 7Rank: 7Rank: 7
来 自:广东广州
等 级:黑侠
威 望:1
帖 子:154
专家分:619
注 册:2009-9-28
结帖率:0
收藏
已结贴  问题点数:0 回复次数:5 
帮我看下这段代码的详细意思
<%
On Error Resume Next
Server.ScriptTimeOut=9999999
response.write(getHTTPPage("http://))
    function getHTTPPage(url)
        dim http
        set http=createobject("MSXML2.XMLHTTP")
        Http.open "GET",url,false
        Http.send()
        if Http.readystate<>4 then
            exit function
        end if
        getHTTPPage=bytes2BSTR(Http.responseBody)
        set http=nothing
        if err.number<>0 then err.Clear
    end function
   
   
    Function bytes2BSTR(vIn)
        dim strReturn
        dim i,ThisCharCode,NextCharCode
        strReturn = ""
        For i = 1 To LenB(vIn)
            ThisCharCode = AscB(MidB(vIn,i,1))
            If ThisCharCode < &H80 Then
                    strReturn = strReturn & Chr(ThisCharCode)
            Else
                    NextCharCode = AscB(MidB(vIn,i+1,1))
                    strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
                    i = i + 1
            End If
        Next
            bytes2BSTR = strReturn
    End Function
%>

据我个人的了解,这段代码的意思为:使用xmlhttp对象访问远程http服务器上某个网站下的某个页面,然后获取被访问页面返回的内容,对这段内容重新编码。我现在想问的是http://这个url根本无法正常访问,也就是说该xmlhttp对象的responsebody的内容应该为空吧,然后去执行编码的时候,因为编码函数传进来的参数就是该被访问页面的返回值,是否会报类似NullPointerException(即空指针异常),因为内容为空?而加上Server.ScriptTimeOut=9999999
这句代表一直要执行这么长时间,所以导致页面假死的状态?
搜索更多相关主题的帖子: 代码 
2009-12-31 14:45
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
收藏
得分:20 
Server.ScriptTimeOut=9999999 '脚本超时时间
2009-12-31 15:32
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
收藏
得分:0 
if Http.readystate<>4 then
            exit function
        end if
已经跳出
2009-12-31 15:33
chenguoxing517
Rank: 7Rank: 7Rank: 7
来 自:广东广州
等 级:黑侠
威 望:1
帖 子:154
专家分:619
注 册:2009-9-28
收藏
得分:0 
想问一下,Http.readystate什么时候等于4,也就是一次回发已结束
假如该xmlhttp对象打开的url根本无法访问,那该http.readystate返回的值还会是4吗?

2009-12-31 16:11
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
收藏
得分:0 
        在请求服务器完成前,首先检查readyState是否等于4,如果是,就可以继续执行。
   readyState属性值

--------------------------------------------------------------------------------
                                                                              意义
--------------------------------------------------------------------------------
               0                                            未初始化:对象不包含数据
               1                                            正在装载:对象当前正在装载它的数据
               2                                            已经装载:对象已经完成了数据装载
               3                                            交互式的:即使对象还未完全转载完,用户也可能与对象进行交互
               4                                            完成:对象完成了初始化
--------------------------------------------------------------------------------
         然后检查的是请求的状态,即服务器返回的状态码(对于请求的每个文件,服务器都会在幕后返回这些编码,但是浏览器旨在出错时显示它们)。
        200意味一切正常,404表示请求文件不存在。
2009-12-31 16:56
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
收藏
得分:0 
其实应该再做个检查服务器返回的状态
2009-12-31 16:57
快速回复:帮我看下这段代码的详细意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025948 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved