Ja jQuery Ajax zavolám na PHP skript, ktorýbeží po primeranú dobu (od 1 do 3 minút). Neustále zaznamenáva percento dokončenia v databáze. Ako môžem nepretržite spúšťať ďalšiu požiadavku Ajaxu, aby som mohol užívateľovi oznámiť úplné percento z databázy MySQL?
UPRAVIŤ Chápem, ako použiť samostatný skript PHP na vyhľadávanie v databáze, takže moja otázka je viac, ako nastaviť volanie skriptov JavaScript a Ajax.
odpovede:
6 pre odpoveď č. 1Po výzve AJAX na spustenie procesumôžete uskutočniť ďalšie volanie AJAX v slučke, ktorá požaduje, vracia sa a predstavuje úplné percento, až kým nedosiahne 100%. V zásade jeden hovor AJAX iniciuje proces a potom sériu hovorov, ktoré kontrolujú stav.
Aktualizácia: Tu je niekoľko jednoduchých JavaScriptov na dosiahnutie toho, čo chcete:
<script>
function startProcess() {
//start your long-running process
$.ajax(
{
type: "GET",
url: "/longRunningProcess",
async: true,
success:
function (data) {
//do something - your long process is finished
}
});
}
function getStatus() {
//check your progress
$.ajax(
{
type: "GET",
url: "/checkProgress",
async: true,
success:
function (data) {
//assume the data returned in the percentage complete
var percentage = parseInt(data);
//write your status somewhere, like a jQuery progress bar?
if (percentage < 100) {
//if not complete, check again
getStatus();
}
}
});
}
0 pre odpoveď č. 2
Pravdepodobne budete potrebovať inú adresu URL, aby ste to mohli zavolaťprieskumy verejnej mienky napredujú z databázy. Inými slovami, iný skript PHP, ktorý hlási pokrok. Volanie Ajax bude pravdepodobne využívať časový limit alebo akékoľvek fantastické veci, ktoré musí jQuery pravidelne naplánovať (až do dokončenia hlásení o hovoroch na serveri).
Nezabudnite zvládnuť výnimočné prípady, keď spracovanie na strane servera zomrie (a teda nikdy nedokončí!)