Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.03.2014, 09:13
Аспирант
Отправить личное сообщение для ruslite Посмотреть профиль Найти все сообщения от ruslite
 
Регистрация: 01.03.2014
Сообщений: 53

Как сделать таймер
привет. Есть код
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мс. Как сделать? Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 08.03.2014, 10:15
Аватар для kotamirov
Аспирант
Отправить личное сообщение для kotamirov Посмотреть профиль Найти все сообщения от kotamirov
 
Регистрация: 28.02.2014
Сообщений: 45

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))
можно так попробовать.
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2014, 10:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

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
      })
  };
Ответить с цитированием
  #4 (permalink)  
Старый 08.03.2014, 10:38
Аспирант
Отправить личное сообщение для ruslite Посмотреть профиль Найти все сообщения от ruslite
 
Регистрация: 01.03.2014
Сообщений: 53

Сообщение от kotamirov Посмотреть сообщение
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))
можно так попробовать.
заменил свой код на ваш и перекидывает на основную страницу сайта. значит где-ошибка у вас.
Ответить с цитированием
  #5 (permalink)  
Старый 08.03.2014, 10:42
Аспирант
Отправить личное сообщение для ruslite Посмотреть профиль Найти все сообщения от ruslite
 
Регистрация: 01.03.2014
Сообщений: 53

Сообщение от рони Посмотреть сообщение
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, 08.03.2014 в 10:44.
Ответить с цитированием
  #6 (permalink)  
Старый 08.03.2014, 10:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

ruslite,
и где в вашем коде то что я добавил?
Ответить с цитированием
  #7 (permalink)  
Старый 08.03.2014, 10:52
Аспирант
Отправить личное сообщение для ruslite Посмотреть профиль Найти все сообщения от ruslite
 
Регистрация: 01.03.2014
Сообщений: 53

Сообщение от рони Посмотреть сообщение
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 );
	
});
Ответить с цитированием
  #8 (permalink)  
Старый 08.03.2014, 10:53
Аспирант
Отправить личное сообщение для ruslite Посмотреть профиль Найти все сообщения от ruslite
 
Регистрация: 01.03.2014
Сообщений: 53

может реализовать на странице где форма сама. функцию, которая будет запрещать отправлять форму не чаще 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>
Ответить с цитированием
  #9 (permalink)  
Старый 08.03.2014, 10:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

ruslite,
могу только гадать может 17 строка должна стоять в 29
Ответить с цитированием
  #10 (permalink)  
Старый 08.03.2014, 11:08
Аспирант
Отправить личное сообщение для ruslite Посмотреть профиль Найти все сообщения от ruslite
 
Регистрация: 01.03.2014
Сообщений: 53

Сообщение от рони Посмотреть сообщение
ruslite,
могу только гадать может 17 строка должна стоять в 29
нет, не хочет к сожалению. А может реализовать, чтобы форму нельзя было отправлять чаше 3 сек? Как это можно сделать?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать все содержимое страницы не активным son313 jQuery 9 10.07.2013 16:58
Как сделать таймер как в САР? jelome Элементы интерфейса 0 27.06.2011 12:40
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Как два раза вставить таймер alexvost Общие вопросы Javascript 2 08.02.2011 02:28
Как сделать постоянную проверку на javascript alb Общие вопросы Javascript 18 09.01.2010 14:05