ورود

View Full Version : مشکل در تابع setTimeout



mrcg10
سه شنبه 28 خرداد 1392, 12:29 عصر
سلام
فصل امتحانا تموم شده امیدوارم دوستان همه گل کاشته باشن
من توی یه صفحه این کد رو دارم

<script type="text/javascript" src="../jquery-1.7.2.js"></script>
<script type="text/javascript">
$.ajax({
type:'POST',
url:"post.php",
data:'get=1',
dataType:"html",
success: function(get){
$('#post').html(get);
}
});
function p_ajax_post(){
$.post('bknlist.php',$("#moid").serialize(),
function(resultHtml){
$('#show').html(resultHtml);
},
'html'
);
$.ajax({
type:'POST',
url:"chat.php",
data:'get=1',
dataType:"html",
success: function(get){
$('#resultt').html(get);
}
});
setTimeout('p_ajax_post()',5000);
}
$(document).ready(function(e) {
p_ajax_post();
}
);
</script>

مشکل اینه کد بالا برای لحظه ایی در هر 5 ثانیه باعث میشه تو صفحه نتونم روی لینکی کلیک کنم و یا متنی رو تایپ کنم این ایراد رو چطوری برطرف کنم؟

jalil_gh
سه شنبه 28 خرداد 1392, 22:18 عصر
جاوااسکریپ تو یک thread اجرا میشه. یعنی همه چی پشت سر هم اجرا میشه و هیچ دو یا چند فرایندی همزمان اجرا نمیشه. وقتی هم که یک فرایندی در حال اجرا شدنه مرورگر تا تموم شدن این فرایند به هیچ رویدادی پاسخ نمیده. به نظر میاد اجرای تابع p_ajax_post زیاد طول میکشه و همین جلوی پاسخدهی مرورگر به رویدادها رو میگیره.

mehdytux
چهارشنبه 29 خرداد 1392, 03:41 صبح
دوست عزیز لطفا فایل ها ( هم html و هم جاوا اسکریپت ) بزار تا تست کنم و بعد شناسایی مشکل و رفع آن برات بفرستم .