|
|
|
setTimeout(),setInterval() กับ ie เจ้าปัญหา ใครเคยเจอปัญหาใช้ setTimeout() หรือ setInterval() |
|
|
|
|
|
|
|
สงสัยคำถามจะยากไป งั้นขอถามใหม่ครับ
ใน jquery มีฟังก์ชันเกี่ยวกับ settimeout หรือเปล่าครับ
|
|
|
|
|
Date :
2010-01-14 18:07:14 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ระหว่างรอพี่หนุ่ม
http://www.sitepoint.com/forums/showthread.php?t=607642
|
|
|
|
|
Date :
2010-01-14 18:16:33 |
By :
peterxp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รู้สึกว่ามันจะช้าจริงๆครับ คือเคยทำเว็บแชตแบบตัวต่อตัว แต่ไม่รู้ช้าเพราะ join ตารางกันเยอะ หรือ ว่า setInterval() กันแน่นะคับ คือตอนนั้นทดลองโดยใช้ firefox กะ ie คุยกันในห้องแชตคับ
โค้ดเก่า
Code (PHP)
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(function() {
var name = '<?=$name?>';
window.opener.windowsname.push(window.name);
window.opener.opened.push(window);
$(window).unload(function() {
var index =0;
for(var i=0; i<window.opener.windowsname; i++){
if( window.name == window.opener.windowsname ){
index = i;
break;
}
}
window.opener.windowsname.splice(index, 1);
window.opener.opened.splice(index, 1);
});
$('select').change(function(){
$(this).css('background', $('option:selected', $(this)).attr('color'));
$('#chattextbox').focus();
}).change();
$('#endchat').click(function(){
$('<div>Ending Chat</div>').appendTo('#display').load('chatting.php?roomid=<?=$roomid?>&endchat=true');
});
var interval_id;
interval_id = window.setInterval(function() {
$.get('chatting.php?roomid=<?=$roomid?>&gettext=true', function(data, textStatus) {
if(data != ''){
var newdata = $(data).hide().appendTo('#display').show('fast', function(){
$(this).find(':last')[0].scrollIntoView(false);
});
}
});
}, <?=$config['5s']?>);
function chatting(){
var chattext = $('#chattextbox').val();
var color = $('select#color').val();
var boldtype = $('#bold').is(':checked') ? 'Y' : 'N';
var italic = $('#italic').is(':checked') ? 'Y' : 'N';
var underline = $('#underline').is(':checked') ? 'Y' : 'N';
var params = {
roomid : '<?=$roomid?>',
chattext : chattext,
color : color,
boldtype : boldtype,
italic : italic,
underline : underline
}
if( chattext != '' ){
$.post('chatting.php', params);
var usertext = $('<div><span class="myname">you:</span>'+chattext+'</div>');
if(boldtype == 'Y') usertext.addClass('bold');
if(italic == 'Y') usertext.addClass('italic');
if(underline == 'Y') usertext.addClass('underline');
var usertextcolor = $('select option:selected').attr('color');
usertext.css('color', usertextcolor).hide();
usertext.appendTo('#display').show('fast', function(){
$(this).find(':last')[0].scrollIntoView(false);
});
}
$('#chattextbox').val('').focus();
}
$('#chattextbox').keydown(function(evt) {
if(evt.keyCode == 13)
chatting();
});
$('#chatbutton').click(function(evt) {
chatting();
});
});//ready
</script>
รู้สึกว่ามันอืดจริงๆ ขนาดแค่ห้องเดียวนะคับ ไม่แน่ใจว่าเป็นเพราะ setInterval() หรือป่าว คือออกแบบฐานข้อมูลให้มันจอยกันเยอะด้วยอ่ะ
|
|
|
|
|
Date :
2010-01-14 18:34:14 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณพี่เอี่ยวครับ
ปัญหาผมไม่ใช้ดึงฐานข้อมูลแน่ครับ แล้วถ้าเป็นที่โค้ดก็ควรจะอืดทุกบราวเซอร์ครับแต่นี้เจาะจงแต่ ie ครับ ลองเปลี่ยนแนวเขียนไปเรื่อยๆครับ
ไงถ้าใครมีประสบการณ์ก็แนะนำหน่อยครับ
|
|
|
|
|
Date :
2010-01-15 01:05:29 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมคิดว่า js ในแต่ละบราวเซอร์ ก็คงจะเร็วไม่เท่ากันนะครับ เพราะคิดว่าเขาพัฒนาเองตามมาตรฐานภาษาเท่านั้นตามแต่ละเจ้า
|
|
|
|
|
Date :
2010-01-15 21:04:37 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|