我在Ajax中製作了一個進度條時遇到了很大的問題。整個頁面在ajax中,其中一個網頁是ajax,加載一個從數據庫中獲取一些大行的函數。我嘗試在foreach循環中使用flush()方法並通過寫入/讀取到$ _SESSION來完成此腳本中的進度條,但仍然沒有任何結果,我試着嘗試所有我不知道如何執行此操作的內容。只需要這個來完成我的項目。有人可以幫助我嗎?無論如何,這是我想加載的腳本,這個進度條的模板如何在GET或POST ajax中用於任何AJAX。加載腳本的AJAX進度條
<script>
jQuery(document).ready(function($) {
$(document).on('click','#save',function() {
setTimeout(getProgress,1000);
$(this).text('Pobieram analizę...');
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (results==null){
return null;
}
else{
return decodeURI(results[1]) || 0;
}
}
var id = $.urlParam('id');
var idt = $.urlParam('idt');
$.ajax({
url: "views/getresults.php?id="+id+"&idt="+idt,
success: function(data) {
$("#loadresults").append(data);
}
});
setTimeout(getProgress,3000);
return false;
});
function getProgress(){
$.ajax({
url: 'views/listen.php',
success: function(data) {
if(data<=100 && data>=0){
console.log(data);
$('#loadresults').html('<div id="progress"><div class="progress-bar" role="progressbar" style="width:'+ (data/100)*100 +'%">'+ data + '/' +100+'</div></div>');
setTimeout(getProgress,1000);
console.log('Repeat');
} else {
$('#loadresults').text('Pobieram dane');
console.log('End');
}
}
});
}
});
</script>
這裏一個GETRESULTS.PHP
foreach($result as $resul) {
$count++;
session_start();
$_SESSION['progress'] = $count;
$_SESSION['total'] = 100;
session_write_close();
sleep(1);
}
unset($_SESSION['progress']);
AND A GET進展功能LISTEN.PHP
<?php
session_start();
echo (!empty($_SESSION['progress']) ? $_SESSION['progress'] : '');
if (!empty($_SESSION['progress']) && $_SESSION['progress'] >= $_SESSION['total']) {
unset($_SESSION['progress']);
}
?>
您曾經嘗試過什麼? –
主要是這個會話的方法,任何刷新和與微調在html5的東西 – CommanderSpock
我是新的阿賈克斯,我做了很多工作,但這個進度條是... – CommanderSpock