久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 終止JS請(qǐng)求的方法有哪些?

瀏覽:151日期:2023-04-28 16:41:48

問(wèn)題描述

面試時(shí)遇到類(lèi)似問(wèn)題,大意就是,加載頁(yè)面時(shí),會(huì)用script標(biāo)簽加載一些js文件資源,這些資源如果長(zhǎng)時(shí)間沒(méi)有請(qǐng)求回來(lái),怎么手動(dòng)終止請(qǐng)求?

我知道Ajax請(qǐng)求有個(gè)abort方法,不知道面試官是不是想問(wèn)這個(gè),以及還有什么別的請(qǐng)求方式的終止方法嗎?

問(wèn)題解答

回答1:

謝邀。像 @小溪流 說(shuō)的一樣,是考察timeout。

大致實(shí)現(xiàn)思路這樣:

var sequence = [’foo’, ’bar’, ’baz’, ’base’, ’ball’, ’hello’, ’world’, ’100k more’], start = Date.now();setTimeout(function _worker() { do { var element = sequence.shift(); // do something with element } while( sequence.length && (Date.now() - start < 100) ); if( sequence.length )setTimeout(_worker, 25);}, 25);

以上例子,25毫秒間隔執(zhí)行隊(duì)列加載,加載時(shí)間在100ms內(nèi)。

回答2:

考察的應(yīng)該是加載資源的timeout

回答3:

<script>的加載總是同步(阻塞性)的,也不能用DOM操作去影響。題主需要的是獨(dú)立于頁(yè)面加載與渲染的異步JS加載。工具有很多,這里舉一個(gè)RequireJS的例子:

HTML頁(yè)面:

<!DOCTYPE html><html><head><meta charset='utf-8' /><title>Test Page</title><script src='https://cdn.staticfile.org/require.js/2.1.15/require.min.js' data-main='test1'></script></head><body></body></html>

保存為test1.js:

require.config({ paths: {’jquery’: ’//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery’,’underscore’: ’//cdn.bootcss.com/underscore.js/1.7.0/underscore’ },waitSeconds: 20});require([’jquery’], function (module) { console.log('jQuery ' + $.fn.jquery + ' successfully loaded. ');}, function (err) { console.log('SHIT happened while loading jQuery! ');});require([’underscore’], function (module) { console.log(_.last([1, 2, 3, 'Underscore.js successfully loaded. ']));}, function (err) { console.log('SHIT happened while loading Underscore.js! ');});

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 杂多县| 余干县| 阳信县| 安塞县| 江北区| 岳普湖县| 乌拉特前旗| 遂川县| 平定县| 屯留县| 尖扎县| 旅游| 勃利县| 张家港市| 阆中市| 进贤县| 威信县| 五指山市| 和平区| 桂林市| 微山县| 建宁县| 政和县| 武川县| 灵璧县| 康平县| 简阳市| 云林县| 平遥县| 新邵县| 济阳县| 淄博市| 慈溪市| 陵川县| 尼玛县| 山东省| 五指山市| 将乐县| 丰顺县| 桦南县| 双桥区|