NodeJs 获取网页内容 http.get 默认请求超时过长了,程序要卡死好一会。

根据网上资料现改造了一个带超时设置的获取网页内容方法。

主要方法使用 setTimeout 来超时,

代码如下:

// 获取指定网页,返回HTML
function getUrlHtml(url, fn_success, fn_error, timeout)
{
timeout = timeout || 2000;
var timeEvent;
var req = http.get(url, function(res){
var html = '';
res.setEncoding('utf-8');
res.on('data' , function(d){
window.clearTimeout(timeEvent);
html += d;
}).on('end', function(){
window.clearTimeout(timeEvent);
//var dom = jq(html);
return fn_success(html);
}).on('error', function(err){
window.clearTimeout(timeEvent);
fn_error(err);
});
}).on('error', function(err){
window.clearTimeout(timeEvent);
fn_error(err);
}); timeEvent = window.setTimeout(function(){
fn_error('time out!');
req.abort();
}, timeout);
} // 使用
getUrlHtml('http://www.xxx.com', function(html){
console.log(html);
}, function(err){
console.log(err);
}, 1000);

最新文章

  1. CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)
  2. linux vmstat 系统结果说明
  3. 【转】Unity 之 移动设备的触控操作
  4. Hdu oj 5522 Numbers 之解题报告
  5. modelsim将波形文件保存下来却不打开图形界面
  6. 【原创】Android开发使用华为手机调试logcat没有应用输出信息
  7. cocos2d-x 2.2.6中c++通过JNI与java互调
  8. SQL DCL数据控制语言,用来定义訪问权限和安全级别;
  9. 初探JS-html5移动端发送指定内容短信到指定号码
  10. 利用PS滤镜及图层叠加制作水墨荷花
  11. mysql多表链接查询
  12. 更改JFram标题栏图标
  13. LoadRunner入门(二)
  14. Selenium webdriver实现截图功能
  15. laravel 配置MySQL读写分离
  16. WebSocket 学习教程(二):Spring websocket实现消息推送
  17. Node.js实战(二)之HelloWorld示例
  18. subzero 基于postgrest && openresty && rabbitmq 的快速rest/graphql 开发平台
  19. C++11中的raw string literals
  20. SQL:查询学习笔记

热门文章

  1. 输入一个整型数组,数据元素有正数也有负数,求元素组合成连续子数组之和最大的子数组,要求时间复杂度为O(n)。
  2. javascript的一些基础
  3. 做完c语言作业的心得
  4. (AS3)关于arguments
  5. Spring 7大功能模块的作用[转]
  6. get a new level 25 battle pet in about an hour
  7. iOS开发拓展篇—CoreLocation地理编码
  8. iOS开发网络篇—监测网络状态
  9. Leetcode 155 Min Stack 小顶堆+栈,优先队列实现 难度:0
  10. SunSonic 3.0 ORM开源框架的学习