0 امتیاز
قبل در برنامه نویسی توسط (60 امتیاز)
ویرایش شده قبل توسط

صفحه ای داریم با چند بخش که قرار است محتوای هر بخش هر چند ثانیه به صورت ایجکس آپدیت بشود.

امکانات فعلی ما jquery است برای ارسال درخواست و دریافت و درج دیتا.

از تابع setInterval در هر بخش (مثلا ۱۰ بخش یا بلوک با تایم ۶۰ ثانیه) استفاده کردیم که اگر سمت سرور (php) دیتایی آماده داشت در صفحه وارد کنیم.

مشکل کند شدن فعالیت در صفحه رو داره مثلا روی لینک چند ثانیه گیر میکنه بعد رنگش عوض میشه یا اسکرول کردن با وقفه..
صفحه یا مرورگر بسته نمیشه فقط به شدت کند میشه.

لطفا ترفندی برای کنترل یا بهبود کد بهم بدید از جی‌کوئری یا فریم ورک دیگه که بتونه به فرض مثال مانند سایت tgju.org به نرمی نتایج رو به صورت ناهمزمان نمایش بده.

1 پاسخ

+1 امتیاز
قبل توسط (186 امتیاز)
ویرایش شده قبل توسط

به صورت نوبتی setIntervalها را اجرا کنید.

به هر متد (بدنه ی Interval)یک شماره تخصیص بدهید بهتره به ترتیب باشه.

یک متغیر مشترک مثلا mN=1 را مقدار دهی کنید که مشخص میکنه الان نوبت کدام متد است که اجرا شود. مثلا الان که 1 است نوبت متدی است که شماره ی آن 1 است.

در بدنه ی متد، اول چک کنید که نوبت متد برای اجرا است اگر نوبتش است کار مورد نظر را اجرا می کنیم و نوبت را به متد بعدی میدهیم(اگر ajax کال میکنید نوبت را بعد از پاسخ ajax به متد بعدی بدهید). واگر اینطور نیست یک اینتروال دیگه تنظیم میکنیم تا نوبتش شود.

یعنی

var m1=function()
{
if(mN!==1)

{

setInterval(m1,100);

return;

}



....

if(++nM>10)

nM=1;

}
}

سوالات مشابه

+1 امتیاز
0 پاسخ 951 بازدید
0 امتیاز
0 پاسخ 296 بازدید
0 امتیاز
1 پاسخ 457 بازدید
0 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 719 بازدید
0 امتیاز
2 پاسخ 411 بازدید
0 امتیاز
1 پاسخ 641 بازدید
...