|
Как сделать таймер
привет. Есть код
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, время: 21:45. |
|