Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2008, 18:31   #1
nikleb
Форумчанин
 
Регистрация: 04.04.2007
Сообщений: 131
По умолчанию Выполнение функции

Привет. У меня есть функция name(); нужно выполнять её каждые две секунды, независимо от того что делает пользователь. Всё это должно быть на js =)
nikleb вне форума Ответить с цитированием
Старый 07.08.2008, 11:16   #2
Andr180nag
Пользователь
 
Регистрация: 10.07.2008
Сообщений: 27
По умолчанию

Код HTML:
<html>
<script>
//var stop_;
function menu_(){
alert('test');//твоя функция
}
stop_=setInterval('menu_()',2000);
</script>
<button onmouseup="clearInterval(stop_)"> Кнопка остановки. Если нужно будет уберешь ее, откроешь Var stop_ вверху, цикл будет бесконечным </button>

</html>
в данном случае пользователь может как раз делать в процессе что хочет. функция автономна.

Последний раз редактировалось Andr180nag; 07.08.2008 в 11:20.
Andr180nag вне форума Ответить с цитированием
Старый 07.08.2008, 17:55   #3
nikleb
Форумчанин
 
Регистрация: 04.04.2007
Сообщений: 131
По умолчанию

Сделал чат с использованием Ajax. На Firefox, Opera, Safari всё ok а на IE не обновляет сообщения. В чём причина?

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<html>
<head>
<title>EV chat</title>
<SCRIPT src="javascript.js" type=text/javascript></SCRIPT>
</head>
<body onload="refresh();">
<div id="messages" style="overflow-y: auto;height:200px;width:410px;border: solid 1px black;" onmousedown="not_refresh();" onmouseup="ok_refresh();">
</div>
<form>
<input type="text" name="nick" id="nick" size="10">
<input type="text" name="sms" id="sms" size="40">
<input type="button" value="Send" onClick="send();refresh();">
</form>
</body>
</html>
Код:
var xmlHttp = false;
var stop= 0;
var ref;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    xmlHttp = false;
  }
}
@end @*/
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}

function send() {
  var sms = document.getElementById("sms").value;
  var nick = document.getElementById("nick").value;
  if ((sms == null) || (sms == "")) return;
  if ((nick == null) || (nick == "")) return;
  var url = "phpfile.php?sms=" + escape(sms) + "&nick=" + escape(nick);
  xmlHttp.open("GET", url, true);
  xmlHttp.onreadystatechange = updatePage;
  xmlHttp.send(null);
}
function refresh() {
	var one = 1;
	var url2 = "phpfile.php?refresh=" + escape(one);
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		xmlHttp.open("GET", url2, true);  
		xmlHttp.onreadystatechange = updatePage2;
		xmlHttp.send(null);
	}
}

function updatePage() {
  if (xmlHttp.readyState == 4) {
	if (xmlHttp.status == 200) {
	    document.getElementById("sms").value = "";
	}
  }
}
function not_refresh() {
	stop=1;
}
function ok_refresh() {
	stop=0;
}
function updatePage2() {
  if (xmlHttp.readyState == 4) {
	if (xmlHttp.status == 200) {
		if (stop == 0) {
			var response = xmlHttp.responseText;
		    var div = document.getElementById('messages');
			div.innerHTML = response;
			down();
		}
	}
  }
}
function down() {
	var divObject = document.getElementById('messages');
	divObject.scrollTop = divObject.scrollHeight;
}
ref=setInterval("refresh();", 2500);
nikleb вне форума Ответить с цитированием
Старый 08.08.2008, 11:47   #4
Andr180nag
Пользователь
 
Регистрация: 10.07.2008
Сообщений: 27
По умолчанию

посмотри следующюю тему, у меня такая же фигня, только с всплывающими менюшками. Можно туда переместить обсуждение..
Andr180nag вне форума Ответить с цитированием
Старый 08.08.2008, 18:42   #5
nikleb
Форумчанин
 
Регистрация: 04.04.2007
Сообщений: 131
По умолчанию

Код:
function refresh() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		xmlHttp.open("GET","phpfile.php?refresh=1", true);
		xmlHttp.onreadystatechange = updatePage2;
		xmlHttp.send(null);
	}
}
Заметил что после того как удалю всю историю IE то он обновляется один раз и опять тоже самое. Наверно он сохраняет ответ от сервера по этой ссылке phpfile.php?refresh=1 и выводит одно и тоже. Попробовал сделать так: "phpfile.php?refresh=1&rand="+escap e(rand), где rand- генерация числа. В таком случае иногда начало обновляться.

Как это исправить? Потомучто способ с рандомом глючит!
nikleb вне форума Ответить с цитированием
Старый 08.08.2008, 23:03   #6
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Код:
Math.floor(Math.random()*1000000000)
Может так?
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 09.08.2008, 11:56   #7
nikleb
Форумчанин
 
Регистрация: 04.04.2007
Сообщений: 131
По умолчанию

Такая технология мне не нравится. Может ктото знает как отправлять через POST? А то я немогу разобраться.
nikleb вне форума Ответить с цитированием
Старый 10.08.2008, 01:49   #8
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

http://www.openjs.com/articles/ajax_...using_post.php
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi 7, как прервать выполнение программы Altera Софт 3 27.07.2008 15:14
Как зделать авто выполнение Editor Общие вопросы Delphi 5 27.04.2008 21:01
Как ускорить выполнение макросов tat-besidovska Microsoft Office Excel 1 22.01.2008 12:12
Выполнение действия с компонентами в цикле Ermiss Общие вопросы Delphi 4 01.11.2007 23:54
Не работает запуск на выполнение (F9) DeN1308 Общие вопросы Delphi 9 30.10.2007 17:34