PDA

View Full Version : سوال: مشکل با رفرش خود به خود



fh_joker
چهارشنبه 07 مرداد 1394, 13:51 عصر
سلام.
برای رفرش خود به خود صفحه از تگ meta اسفاده کردم.رفرش میشه
ولی مشکل اینجاست که مثلا من دارم گزارش می گیرم یا مطلبی رو می خونم یه دفعه رفرش میشه حالا روز از نو روزی از نو
یا توی بعضی گزارشات که زمان بیشتری می بره قبل از نمایش گزارش رفرش میشه و همه چی برمیگرده سرجاش.
یه راه حل بهتر برای رفرش خود به خود؟؟؟؟ چی بزارم؟؟؟؟

thacker
چهارشنبه 07 مرداد 1394, 13:54 عصر
برای چه موردی از رفرش خودکار استفاده میکنید ...
میتونید فقط اون بخشی که نیاز دارید رو توسط Ajax رفرش کنید و نه کل صفحه رو ...

دانیال دزفولی
چهارشنبه 07 مرداد 1394, 17:09 عصر
این مشکل نیست

اون کد کارش اینه که سر مثلا 20 ثانیه اجرا بشه

راهش هم که دوستمون اشاره کرد با ای چکس ه

fh_joker
چهارشنبه 07 مرداد 1394, 21:47 عصر
میتونید فقط اون بخشی که نیاز دارید رو توسط Ajax رفرش کنید و نه کل صفحه رو
ببینید من یه صفحه اول دارم که چهارتا نمودار دایره ای رسم می کنه با توجه با اینکه هر لحظه داره آمار تغییر می کنه و این نمودارها تغییر می کنن.همه چی به صورت ajax توی همین یه صفحه هست.مشتری می خواد این صفحه و باز بزاره و از روی نمودار تغییرات رو ببینه.
مثلا می تونم بگم اگر توی چند ثانیه کاربر کاری نکرد صفحه رو رفرش کن؟؟؟
اگر بخوام اینطوری بگم چه رویدادی را باید بررسی کنم؟؟

fh_joker
شنبه 10 مرداد 1394, 09:29 صبح
دوستان کسی نظری نداره همه برنامه معطل شده برای این یه مشکل!!!

hamidreza-p
شنبه 10 مرداد 1394, 10:54 صبح
دوستان کسی نظری نداره همه برنامه معطل شده برای این یه مشکل!!!

سلام.
خب از ajax استفاده کنید.
و مثلاً هر ده ثانیه اطلاعات رو به روز کنید.

fh_joker
شنبه 10 مرداد 1394, 12:47 عصر
و مثلاً هر ده ثانیه اطلاعات رو به روز کنید.
همه مشکل سر محدودیت روی زمان هست
من الان گذاشتم روی 50 ثانیه تا کاربر نخواد کاری کنه و فقط نمودار رو ببینه مشکل نیست.
اگر بخواد مثلا از داده ها بکاپ بگیره موقعی که داره فرم رو پر می کنه یه دفعه صفحه رفرش میشه و هم چی برمیگرده سرجاش و باید بره دوباره فرم رو پر کنه.
یا برای اینکه گزارش خاصی بگیره داده ها زیاده یه دفعه وسط لود شدن و اتصال به دیتابیس صفحه رفرش میشه و همه چی از اول
حالا خودتون رو بزارید جای کاربر:لبخند:

Unique
شنبه 10 مرداد 1394, 13:17 عصر
جناب جوکر شما نمیگیرین دوستان چی میگن ! ببینین شما یک صفحه دارین که توش دارین نمودار رسم میکنین و زیرش یک فرم برای گزارش گیری و پشتیبان گیری دارین. لازم نیست توی meta یا به هر روش دیگه ای صفحه را Refresh کنید. شما باید نمودار هاتون را از طریق ajax به روز کنید. یعنی یک صفحه php دارین که کد نمودار ها را تولید میکنه و با تابع setTimeout میاین و مثلا هر ۳۰ ثانیه اطلاعات نقشه ا را با ajax میگیرین و جایگزین اصلاعات نقشه ها میکنین و کاری به فرم های گزارش و پشتیبان گیری ندارین.

fh_joker
یک شنبه 11 مرداد 1394, 11:33 صبح
ممنون از توضیح.

زیرش یک فرم برای گزارش گیری و پشتیبان گیری دارین.
زیرش نیست به صورت منوی کنار هست. گزارش 1 ، گزارش 2 و الی آخر
وقتی روی منو ها کلیک میشه با استفاده از onclick فرم دریافت گزاش میاد و اطلاعات فرم با ajax میره به program.php و نتیجه کار با json برمیگرده.
الان کد ajax گذاشتم فقط div مربوط به محتوا رو رفرش کنه - حالا هر چی بود - درست عمل کرد ولی اطلاعات رو به روز نکرد.
اگر بخوام فقط div نمودار رو رفرش کنم و فقط اطلاعات تابع نمودار رو بفرستم ،دوباره مشکل اول پیش میاد.div ها کنار هم نیستن.
اگر بخوام div محتوی رو رفرش کنم باید اطلاعات رو هم ارسال کنم تا داده ها به روز بشه
اشتباهم کجاست؟؟
کدی که گذاشتم اینه:

$(document).ready(
function() {
setInterval(function() {
// $('.workset_obj')}, 3000);
$('#chart-section').fadeToggle();}, 50000);
});

Unique
یک شنبه 11 مرداد 1394, 15:22 عصر
من نمیدونم شما دقیقا اطلاعات نمودار را چطور میگیرین و نمودار را رسم میکنید ! اطلاعات json بر میگرده بعدش با javascript میدین به نمودار ؟ نمودار سمت php رسم میشه و خروجی html چاپ میکنید ؟ خلاصه مهم نیست چیکار میکنید ولی یکجای کار شما میلنگه یعنی وقتی به صورت عادی صفحه را صدا میزنید نباید هیچ فرقی بکنه با وقتی که همون اطلاعات را با ajax بگیرید. حالا اینجا یا همون اطلاعات را نمیگیرین یا کد جاوا اسکرپیتی دارین که در حالت عادی بعد از ایجاد صفحه اجرا میشه ولی در حالت ajax شما بعد از Load کردن data اون را صدا نمیزنین. این تابعی هم که نوشتین توی 50 ثاینه یک المنت را toggle میکنه. من چیز دیگه ای ازش نمیفهمم. تازه این یکبار بیشتر صدا زده نمیشه چون توی رویداد ready داکیومنت صدا زده میشه.

به نظر من مشکل شما در استفاده از jquery و مفاهیم خیلی پایه html و javascript هستش.

hormoz1
یک شنبه 11 مرداد 1394, 17:08 عصر
من نمیدونم شما دقیقا اطلاعات نمودار را چطور میگیرین و نمودار را رسم میکنید ! اطلاعات json بر میگرده بعدش با javascript میدین به نمودار ؟ نمودار سمت php رسم میشه و خروجی html چاپ میکنید ؟ خلاصه مهم نیست چیکار میکنید ولی یکجای کار شما میلنگه یعنی وقتی به صورت عادی صفحه را صدا میزنید نباید هیچ فرقی بکنه با وقتی که همون اطلاعات را با ajax بگیرید. حالا اینجا یا همون اطلاعات را نمیگیرین یا کد جاوا اسکرپیتی دارین که در حالت عادی بعد از ایجاد صفحه اجرا میشه ولی در حالت ajax شما بعد از Load کردن data اون را صدا نمیزنین. این تابعی هم که نوشتین توی 50 ثاینه یک المنت را toggle میکنه. من چیز دیگه ای ازش نمیفهمم. تازه این یکبار بیشتر صدا زده نمیشه چون توی رویداد ready داکیومنت صدا زده میشه.

به نظر من مشکل شما در استفاده از jquery و مفاهیم خیلی پایه html و javascript هستش.
در رویداد document ready که باشد مشکلی پیش نمی آید من خودم چندین بار تابع setinterval را در همان رویداد استفاده کردم و مشکلی پیش نیامد.
ببینید شما احتملا از یک جا دیگه یک تابعی رو صدا زدید می تونید که نمودار تولید کند می توانید اطلاعاتی را با ajax پست کنید در آن صفحه برسی کنید که اگر همچین چیزی پست شد نمودار را دوباره بسازد و چاپش کنید و بعد هم آن را نمودار نمایش دهید (توابع ajax در jquery همگی یک پارامتر دارند که وقتی پست شد شما می توانید خروجی را بگیرید و وقتی خروجی را گرفتید آن را در نمودار قرار دهید. )

ویرایش : بعد هم معلوم است که این جواب نمی دهد شما فقط fade toggle کردید.

Unique
یک شنبه 11 مرداد 1394, 18:58 عصر
در رویداد document ready که باشد مشکلی پیش نمی آید من خودم چندین بار تابع setinterval را در همان رویداد استفاده کردم و مشکلی پیش نیامد.
درست میگین من حواسم به setInterval نبود.