cari

Rumah  >  Soal Jawab  >  teks badan

Apakah cara untuk menamatkan permintaan JS?

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?

typechotypecho2747 hari yang lalu1064

membalas semua(3)saya akan balas

  • 我想大声告诉你

    我想大声告诉你2017-06-28 09:30:55

    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.

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-28 09:30:55

    Apa yang perlu diperiksa ialah tamat masa memuatkan sumber

    balas
    0
  • typecho

    typecho2017-06-28 09:30:55

    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! ");
    });

    balas
    0
  • Batalbalas