zoukankan      html  css  js  c++  java
  • NodeJs http.get 方法请求时间过长问题处理!

    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);
  • 相关阅读:
    Android流畅度测试
    linux常用操作指令
    SQL语句
    客户端专项测试谈
    我的面经(ing)
    整理面试题
    百度质量部测试开发面试题
    UIResponder响应链
    NSURLSession进行网络请求
    命令行工具打包
  • 原文地址:https://www.cnblogs.com/zjfree/p/4788495.html
Copyright © 2011-2022 走看看