码迷,mamicode.com
首页 > Web开发 > 详细

NodeJs http.get 方法请求时间过长问题处理!

时间:2015-09-07 12:35:52      阅读:1693      评论:0      收藏:0      [点我收藏+]

标签:

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);

 

NodeJs http.get 方法请求时间过长问题处理!

标签:

原文地址:http://www.cnblogs.com/zjfree/p/4788495.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!