|
Как сделать таймер
привет. Есть код
var nameVal = $( "#nameInput" ).val(); var msg = $( "#messageInput" ).val(); var canalVal = $( "#canalInput" ).val(); if((nameVal) && (msg)){ socket.emit( 'message', { name: nameVal, message: msg, canal: canalVal } ) }; Мне надо, чтобы эта строчка socket.emit( 'message', { name: nameVal, message: msg, canal: canalVal } )выполнялась не чаще 3000мс. Как сделать? Спасибо |
setInterval(function(){message();} , 3000); var message = function(){ var nameVal = $( "#nameInput" ).val(); var msg = $( "#messageInput" ).val(); var canalVal = $( "#canalInput" ).val(); if((nameVal) && (msg)){ socket.emit( 'message', { name: nameVal, message: msg, canal: canalVal } ) }; }; setInterval - repeated eatch 3000ms)) можно так попробовать. |
ruslite,
var nameVal = $("#nameInput").val(); var msg = $("#messageInput").val(); var canalVal = $("#canalInput").val(); flag = true; if (nameVal && msg && flag) { flag = false; window.setTimeout(function () { flag = true }, 3000) socket.emit('message', { name: nameVal, message: msg, canal: canalVal }) }; |
Цитата:
|
Цитата:
var socket = io.connect( 'http://localhost:8080' ); $( "#messageForm" ).submit( function() { var nameVal = $( "#nameInput" ).val(); var msg = $( "#messageInput" ).val(); var canalVal = $( "#canalInput" ).val(); if(nameVal && msg){ socket.emit( 'message', { name: nameVal, message: msg, canal: canalVal } ) }; // Ajax call for saving datas $.ajax({ url: "./ajax/insertNewMessage.php", type: "POST", data: { name: nameVal, message: msg, canal: canalVal }, success: function(data) { } }); return false; }); socket.on( 'message', function( data ) { var actualContent = $( "#messages" ).html(); var newMsgContent = '<li> <strong>' + data.name + '</strong> : ' + data.message .replace(new RegExp("&#D83DDE04",'gi'),"<img src='../packs/basic/D83DDE04.png' height='21' width='21'>") .replace(new RegExp("&#D83DDC8A",'gi'),"<img src='../packs/basic/D83DDC8A.png' height='21' width='21'>") + '</li>'; var content = newMsgContent + actualContent; $( "#messages" ).html( content ); }); |
ruslite,
и где в вашем коде то что я добавил? |
Цитата:
var socket = io.connect( 'http://localhost:8080' ); $( "#messageForm" ).submit( function() { var nameVal = $("#nameInput").val(); msg = $("#messageInput").val(); var canalVal = $("#canalInput").val(); flag = true; if (nameVal && msg && flag) { flag = false; window.setTimeout(function () { flag = true }, 3000) socket.emit('message', { name: nameVal, message: msg, canal: canalVal }) }; // Ajax call for saving datas $.ajax({ url: "./ajax/insertNewMessage.php", type: "POST", data: { name: nameVal, message: msg, canal: canalVal }, success: function(data) { } }); return false; }); socket.on( 'message', function( data ) { var actualContent = $( "#messages" ).html(); var newMsgContent = '<li> <strong>' + data.name + '</strong> : ' + data.message .replace(new RegExp("&#D83DDE04",'gi'),"<img src='../packs/basic/D83DDE04.png' height='21' width='21'>") .replace(new RegExp("&#D83DDC8A",'gi'),"<img src='../packs/basic/D83DDC8A.png' height='21' width='21'>") + '</li>'; var content = newMsgContent + actualContent; $( "#messages" ).html( content ); }); |
может реализовать на странице где форма сама. функцию, которая будет запрещать отправлять форму не чаще 3 сек?
вот сама форма <div class="example"> <form class="form-inline" id="messageForm"> <input id="nameInput" type="hidden" class="input-medium" value="<?php echo $log_username;?>" /> <input id="canalInput" type="hidden" class="input-medium" value="<?php echo $name;?>" /> <div id="messageInput" name="messageInput1" placeHolder="Ваше сообщение"></div> <input type="submit" value="Отправить" onclick="$('.emoji-wysiwyg-editor').html('')"/> </form> </div> |
ruslite,
могу только гадать может 17 строка должна стоять в 29 |
Цитата:
|
Часовой пояс GMT +3, время: 15:26. |
|