JS资源下载的四种方法

const https = require('https');
const http = require('http');
const fetch = require('node-fetch');
const XMLHttpRequest = require('xhr2');
const request = require("request");


function download1(url){
	var time = Date.now();
	let xhr = new XMLHttpRequest();
	xhr.open('GET', url, true);
	let isJson = false;
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	let restype = "arraybuffer";//responseType !== "arraybuffer" ? "text" : "arraybuffer";
	xhr.responseType = restype;
	if (xhr.dataType) {
		xhr.dataType = restype;
	}
	xhr.onerror = (e) => {
	};
	xhr.onabort = (e) => {
	};
	xhr.onprogress = (e) => {
	};
	xhr.onload = (e) => {
		console.log("downdload end = ",(Date.now() - time));
	};
	xhr.send(null);
}

function download2(url){
	var time = Date.now();
	https.get(url,(res)=>{
		var data = "";
		res.setEncoding('binary');
		res.on('data',(chunk)=>{
			data += chunk;
		});
		res.on('end',()=>{
			// console.log("data"+data);
			console.log("downdload end = ",(Date.now() - time));
		});
	});
}


function download3(url){
	var time = Date.now();
	fetch(url,{
		method:'GET',
		headers: {
			'Content-Type': 'application/octet-stream'
		},
	}).then((res) =>{
		console.log("downdload end = ",(Date.now() - time));
	});
}

function download4(url){
	var time = Date.now();
	var req = request(url, {timeout: 10000, pool: false});
	req.setMaxListeners(50);
    req.setHeader('user-agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36');
	req.on('error', function(err) {
        throw err;
    });
    req.on('response', function(res) {
        res.setEncoding("binary");
        var fileData = "";

        res.on('data', function (chunk) {
            fileData+=chunk; 
        });
        res.on('end',function(){
			// console.log("data"+fileData);
            console.log("downdload end = ",(Date.now() - time));
        });
    })
}


// download("https://official-layaverse-1251285021.file.myqcloud.com/759649/scenes_game/365736/scenes/0/scene_1659690128474_view_compress.dat");
download1("https://layabox-1.oss-cn-beijing.aliyuncs.com/upload/svn/resource/model/0_Seasons_4/Rock_4/Rock_4.lm");
download2("https://layabox-1.oss-cn-beijing.aliyuncs.com/upload/svn/resource/model/0_Seasons_4/Rock_4/Rock_4.lm");
download3("https://layabox-1.oss-cn-beijing.aliyuncs.com/upload/svn/resource/model/0_Seasons_4/Rock_4/Rock_4.lm");
download4("https://layabox-1.oss-cn-beijing.aliyuncs.com/upload/svn/resource/model/0_Seasons_4/Rock_4/Rock_4.lm");

// setTimeout(_=>{
// 	download1("https://layabox-1.oss-cn-beijing.aliyuncs.com/upload/svn/resource/model/0_Seasons_4/Rock_4/Rock_4.lm");
// },1000);

JS资源下载的四种方法_第1张图片

你可能感兴趣的:(笔记,javascript,前端,开发语言)