Apakah cara untuk menamatkan permintaan JS?
typecho
typecho 2017-06-28 09:28:55
0
3
1033

Saya menghadapi masalah yang sama semasa temu bual Idea umum ialah semasa memuatkan halaman, beberapa sumber fail js akan dimuatkan menggunakan tag skrip Jika sumber ini tidak diminta kembali untuk masa yang lama, bagaimana untuk menamatkan permintaan secara manual?

Saya tahu bahawa permintaan Ajax mempunyai kaedah pengguguran Saya tertanya-tanya sama ada penemuduga ingin bertanya ini, dan adakah terdapat cara lain untuk menamatkan permintaan itu?

typecho
typecho

Following the voice in heart.

membalas semua(3)
我想大声告诉你

Terima kasih atas jemputan.
Seperti @小Stream berkata, sudah tamat masa.

Idea pelaksanaan kasar adalah seperti berikut:

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

Dalam contoh di atas, pemuatan baris gilir dilakukan pada selang waktu 25 milisaat, dan masa pemuatan adalah dalam 100ms.

给我你的怀抱

Apa yang perlu diperiksa ialah tamat masa memuatkan sumber

typecho

Pemuatan

<script> sentiasa segerak (menyekat) dan tidak boleh dipengaruhi oleh operasi DOM. Perkara yang diperlukan oleh subjek ialah pemuatan JS tak segerak yang tidak bergantung pada pemuatan dan pemaparan halaman. Terdapat banyak alat, berikut adalah contoh RequireJS:

Halaman HTML:

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

Simpan sebagai 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! ");
});
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan