在网页脚本编程中,绝大多数情况应该使用异步模式;同步模式将会挂起当前的脚本引擎,所以当你使用同步模式时,你应该明白自己要什么。而在C++开发中,同步模式应该是主流,如果一定要使用异步模式加回调,可以参考Using IXMLHTTPRequest onreadystatechange from C++一文。
下面是采用异步模式获取远程主机上RSS文件的代码,关键的地方是设置一个回调函数给IXMLHTTPRequest::onreadystatechange。为了防止脚本过早退到控制台,使用了asyncDone变量检测当前状态。当然,如果在网页中使用XMLHTTP,则不用这么麻烦——只要IE网页不关闭,回调函数不会退出。
复制代码 代码如下:
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.6.0");
var url = "https://www./rss.xml";
var asyncDone = false;
try {
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = onReadyStateChange;
xmlhttp.send(null);
// loop so that the program from quiting
while (!asyncDone) {
WScript.Sleep(100);
}
WScript.Echo(xmlhttp.responseText);
} catch (e) {
WScript.Echo(e);
}
function onReadyStateChange() {
WScript.Echo("readyState: " + xmlhttp.readyState);
if (xmlhttp.readyState == 4) {
asyncDone = true;
}
}
同步模式获取远程主机资源的代码要简单许多:
复制代码 代码如下:
var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.6.0");
var url = "https://www./rss.xml";
try {
xmlhttp.open("GET", url, false);
xmlhttp.send(null);
WScript.Echo(xmlhttp.responseText);
} catch (e) {
WScript.Echo(e);
}
不过,如果在IE中使用同步模式,由于没有了回调的机制而且IE又不支持脚本开线程,脚本会被挂起直到XMLHTTP返回。注意,IE界面本身会被挂起。
同步还是异步,具体问题还要具体分析。
相关推荐:
Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
php 魔术方法使用说明
asp.net FreeTextBox配置详解
lftp 贴心好友 备份服务器bash脚本
asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别
Apache 虚拟目录和默认首页的设置
JSP JavaBean的setProperty属性
JavaScript 语法集锦 脚本之家基础推荐
防止SQLSERVER的事件探查器跟踪软件
Javascript select下拉框操作常用方法
小学生作文妙语 开怀大笑作品
实现按关健字模糊查询,并按匹配度排序的SQL语句
基于JQuery框架的AJAX实例代码
初学CAKEPHP 基础教程
IE Firefox 使用自定义标签的区别
商务主机威力显现 助企业发展后劲十足
IE FF OPERA都可用的弹出层实现代码
prototype 中文参数乱码解决方案
按键盘方向键翻页跳转的javascript代码(支持ie,firefox)
jQuery 标题的自动翻转实现代码
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
MAC官方菜单纯CSS实现灰色会换色
图片友情链接滚动 横向,带控制按钮
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
JSP 中文字符处理代码
php 3行代码的分页算法(求起始页和结束页)
xhEditor的异步载入实现代码
sqlserver 日志恢复方法(搞定drop和truncate)
php面向对象全攻略 (十五) 多态的应用
sql 服务器知识
Ha0k 0.3 PHP 网页木马修改版
支持IE,Firefox的javascript 日历控件
CSS+Js遮罩效果的TAB及焦点图片切换(推荐)
asp 采集程序常用函数分析
ASP 80040e14错误的解决方法
JavaScript 另类遍历数组实现代码
php面向对象全攻略 (三)特殊的引用“$this”的使用
JQuery 图片延迟加载并等比缩放插件
jQuery live( type, fn ) 委派事件实现
新10种领带的打法 图文教程
php pack与unpack 摸板字符字符含义
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
JS 截取字符串substr 和 substring方法的区别
添加FCKeditor插件需要注意的地方
javascript 走马灯效果的链接提示
使用regini.exe修改注册表命令
Asp.net treeview实现无限级树实现代码
Js 实现文字爬楼滚动效果 结合文本框
Oracle 子程序参数模式,IN,OUT,NOCOPY
sqlServer 获取汉字字串的拼音声母