第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

首先嘗試保護(hù)文件不被訪問(wèn)

首先嘗試保護(hù)文件不被訪問(wèn)

繁華開(kāi)滿天機(jī) 2024-01-03 14:37:51
function downloadUrl(url, callback) {    Transition();    var request = window.ActiveXObject ?        new ActiveXObject('Microsoft.XMLHTTP') :        new XMLHttpRequest;    request.onreadystatechange = function() {        if (request.readyState == 4) {            request.onreadystatechange = doNothing;            callback(request, request.status);        }    };    request.open('GET', url, true);    request.send(null);    Transition();}function Transition() {    var xmlhttp = window.ActiveXObject ?        new ActiveXObject('Microsoft.XMLHTTP') :        new XMLHttpRequest;    xmlhttp.onreadystatechange = function() {        if (xmlhttp.readyState == 4) {            xmlhttp.onreadystatechange = doNothing;            callback(xmlhttp, xmlhttp.status);        }    };    xmlhttp.open("GET", "transition.php", true);    xmlhttp.send();}啊,是的,我正在嘗試使用 jQuery 并打開(kāi)會(huì)話變量,并在執(zhí)行另一個(gè) jQuery 函數(shù)后使用上述方法關(guān)閉該會(huì)話變量。transition.php是打開(kāi)和關(guān)閉變量的文件,另一個(gè) jQuery 函數(shù)downloadUrl只是下載 XML 格式文件??傊?,我有一個(gè).php文件需要保持打開(kāi)狀態(tài)足夠長(zhǎng)的時(shí)間才能訪問(wèn)其中的數(shù)據(jù),然后立即關(guān)閉。
查看完整描述

1 回答

?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊

更新:onreadystatechange更正了和的一些措辭readyState。

你打開(kāi)或關(guān)閉東西的技巧是一個(gè)好主意,盡管我不確定它是否有效或安全。無(wú)論如何,您所顯示的代碼的直接問(wèn)題是它沒(méi)有考慮您正在使用異步請(qǐng)求的事實(shí)。

您的代碼按照編寫(xiě)的順序運(yùn)行,但異步請(qǐng)求不會(huì)阻止執(zhí)行,因此第二個(gè)XMLHttpRequesttourl幾乎立即觸發(fā),并且早在第一個(gè)Transition()完成之前就觸發(fā)了。

如果您需要事情按順序發(fā)生,則需要從請(qǐng)求onreadystatechange事件處理程序調(diào)用后續(xù)步驟,該事件處理程序會(huì)在請(qǐng)求狀態(tài)更改時(shí)觸發(fā)。代碼已經(jīng)測(cè)試了readyState 4,這意味著請(qǐng)求已完成。因此,請(qǐng)求完成后,調(diào)用的代碼就會(huì)運(yùn)行。

我不確定你的一些代碼在做什么,也許它是在上下文之外復(fù)制的(例如你的callback, and是什么doNothing?)。

這是一個(gè)基于您的代碼的工作 JSFiddle,對(duì)所有 3 個(gè)請(qǐng)求使用虛擬 URL。我已經(jīng)包含了一堆日志記錄,打開(kāi)您的開(kāi)發(fā)控制臺(tái)以查看事件啟動(dòng)、運(yùn)行和完成的順序。

這個(gè)想法是將回調(diào)傳遞給第一個(gè)Transition,該回調(diào)將在請(qǐng)求完成后被觸發(fā):

function downloadUrl() {
    Transition(foo);
}

Transition將回調(diào)作為參數(shù),并在完成時(shí)觸發(fā)它:

function Transition(callback) {


    // ... your code ... 


    xmlhttp.onreadystatechange = function() {

        if (xmlhttp.readyState == 4) {

            if (callback) {

                callback();

            }

        }

    };


    // ... your code


}

這foo()是一個(gè)實(shí)際下載 的函數(shù)url,基本上是您所擁有的所有內(nèi)容downloadUrl(),但不調(diào)用Transition.


完成后foo(),您需要Transition再次調(diào)用,但這次我們不想在完成后觸發(fā)任何內(nèi)容,因此我們通過(guò)false,這Transition將測(cè)試并跳過(guò)嘗試執(zhí)行。


我寫(xiě)得很快,感覺(jué)有點(diǎn)笨拙,您可能可以稍微修改一下以使其更整潔,但它演示了使用事件處理程序通過(guò)異步請(qǐng)求順序執(zhí)行操作的基本思想。


查看完整回答
反對(duì) 回復(fù) 2024-01-03
  • 1 回答
  • 0 關(guān)注
  • 129 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)