Ben tüm ABD eyaletlerinde tüm şehirler için bazı işlem yapacak küçük bir PHP / JavaScript uygulaması inşa ediyorum. Bu (52 x 25.583) toplam kadar yuvarlar = işlenecek gerekecektir 1330316 veya daha az ürün.
Her öğenin işlenmesi kullanıcı 1-2 saat (ya da en azından başka şeyler yaptı ise minimize tutmak) için bu sayfaya bakıyorum olabilir ki yaklaşık 2-3 saniye sürer, bu nedenle olası olacaktır.
Kullanıcıya maksimum geribildirim vermek için, ben, javascript ile temelde böyle bir şey sayfanın işlenmesini kontrol düşünüyordum:
var current = 1;
var max = userItems.length; // 1330316 or less
process();
function process()
{
if (current >= max)
{
alert('done');
return;
}
$.post("http://example.com/process", {id: current}, function()
{
$("#current").html(current);
current ++;
process();
}
);
}
Html i process()
fonksiyon denir her güncellenmiş olacak aşağıdaki durum iletisini sahip olacaktır:
<div id="progress">
Please wait while items are processed.
<span id="current">0</span> / <span id="max">1330316</span> items have been processed.
</div>
Umarım hepiniz bu çalışmak istiyorum nasıl görebilirsiniz.
Benim tek endişem bu 1330316 istekleri sunucuya aynı anda yapılırsa, bu çöküyor / sunucu aşağı getirdiği bir olasılık olduğunu, yani? Eğer öyleyse ben kullanarak istek başına 2 saniye ekstra bekleme koyarsanız, sleep(3);
sunucu tarafı PHP kodu, o daha iyi şeyler yapacak?
Veya kullanıcı apache veya sunucu ile karışıklık beni gerektirmez çağırma gibi hızlı geribildirim gösteren farklı bir mekanizma var mı?