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

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

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

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

繁華開滿天機(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 并打開會(huì)話變量,并在執(zhí)行另一個(gè) jQuery 函數(shù)后使用上述方法關(guān)閉該會(huì)話變量。transition.php是打開和關(guān)閉變量的文件,另一個(gè) jQuery 函數(shù)downloadUrl只是下載 XML 格式文件。總之,我有一個(gè).php文件需要保持打開狀態(tài)足夠長的時(shí)間才能訪問其中的數(shù)據(jù),然后立即關(guān)閉。
查看完整描述

1 回答

?
慕姐4208626

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

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

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

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

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

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

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

這個(gè)想法是將回調(diào)傳遞給第一個(gè)Transition,該回調(diào)將在請求完成后被觸發(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)容,因此我們通過false,這Transition將測試并跳過嘗試執(zhí)行。


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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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