私はajaxでプログレスバーを作るのに大きな問題がありました。全体のページがajaxにあり、Webページの1つの内部に、データベースから大きな行を取得する関数をロードするajaxがあります。私はこのスクリプトでforeachループのflush()メソッドのプログレスバーを作成しようとしましたが、$ _SESSIONに書き込み/読み込みを行いましたが、まだ何もありません。私のプロジェクトを完了するためだけにこれが必要です。誰かが私にこれを手伝ってもらえますか?とにかくスクリプトをロードしたいのですが、このプログレスバーのテンプレートは、AJAXのGETやPOSTの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 GET PROGRESS機能LISTEN.PHP
<?php
session_start();
echo (!empty($_SESSION['progress']) ? $_SESSION['progress'] : '');
if (!empty($_SESSION['progress']) && $_SESSION['progress'] >= $_SESSION['total']) {
unset($_SESSION['progress']);
}
?>
あなたがしようとした何? –
ほとんどの場合、このセッションメソッドは、html5のスピナーを使用しています。 – CommanderSpock
私はajaxで新しく、多くの作業を行いましたが、このプログレスバーは... – CommanderSpock