форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / Создание сайта / JavaScript - нужна помощь
. 1 . 2 . >>
Автор Сообщение
Cryptex
Участник

259
# Дата: 14 Мар 2008 07:25


Народ, может кто-то знает, как с помощью JavaScriptа можно сделать так, чтобы... например: есть человек А и Б. Человек А зашёл на сайт и сидит смотрит на страничку. В это время человек Б например посылает сообщение человеку А. Как сделать, чтобы без перезагрузки гдет появилось ну например это сообщение у человека А?
П.С. кто из Латвии и пользуется one.lv (или пользовался) думаю поймут.

Systemnik
Участник

209
# Дата: 14 Мар 2008 10:36


Это AJAX... это довольно трудно реализовать надо знаьть php и
JavaScript на зубок..

SpiriTzzz
Темный джедай

1384
# Дата: 14 Мар 2008 14:35 ° Поправил: SpiriTzzz


не так уж и трудно на самом деле ) будет время - попробую написать что то похожее с использованием моей любимой библиотеки query.com

Systemnik
Участник

209
# Дата: 14 Мар 2008 15:10




Cryptex
Участник

259
# Дата: 14 Мар 2008 15:21


SpiriTzzz Хм... если не трудно конечно а вообще меня заинтересовал пример на query.com надобудет там и самому чонить посмотреть

maxtat
pda killer

1438
# Дата: 15 Мар 2008 00:16


AJAX зло, я стока с ним мучаюсь

WarGot
Per aspera ad astra

1926
# Дата: 15 Мар 2008 02:34


maxtat
а я те грил -)
xajax проще php шникам
имхо

maxtat
pda killer

1438
# Дата: 15 Мар 2008 13:50


да там один фиг тем более спирт в асе нифига не помогает!!!

Roler
USA Hater

1280
# Дата: 15 Мар 2008 15:28


maxtat
Помогает, плохо просишь))

WarGot
А что за xajax ?

maxtat
pda killer

1438
# Дата: 15 Мар 2008 15:30


» Roler
Помогает, плохо просишь))

он мне ОБЕЩАЛ помочь с проектом одним, а сам нифига не отвечает в асе как тока речь заходит об ЯС )))) Убью сволочь

SpiriTzzz
Темный джедай

1384
# Дата: 15 Мар 2008 19:21


maxtat
у меня еще и своих дел хватает есть время - могу помочь, нет времени - не могу

Cryptex
Участник

259
# Дата: 15 Мар 2008 19:47


SpiriTzzz я там на очереди ежели шо

acsid
Alfa Guru

2388
# Дата: 21 Мар 2008 20:56


» Cryptex
Народ, может кто-то знает, как с помощью JavaScriptа можно сделать так, чтобы... например: есть человек А и Б. Человек А зашёл на сайт и сидит смотрит на страничку. В это время человек Б например посылает сообщение человеку А. Как сделать, чтобы без перезагрузки гдет появилось ну например это сообщение у человека А?

я уже так делал.. в алкочате ксожалению ущёл в запой и не дописал админку... уже год валяется

Cryptex
Участник

259
# Дата: 21 Мар 2008 23:17


acsid если скажешь где взять, то буду выковыривать, оттуда если получиться

acsid
Alfa Guru

2388
# Дата: 22 Мар 2008 17:04


Cryptex

4itaj tut http://docs.jquery.com/Ajax/jQuery.ajax#options

vsjo legko. Ska4aj biblioteku,php sdelaj funkciju po primeru

SpiriTzzz
Темный джедай

1384
# Дата: 22 Мар 2008 17:34


Cryptex а если что непонятно - пиши в асю 204742439

Cryptex
Участник

259
# Дата: 22 Мар 2008 22:35


завтра буду пробовать... если что отпишусь или там или тут.

Cryptex
Участник

259
# Дата: 23 Мар 2008 19:49


я тупой я знаю... как установить библиотеку?

Roler
USA Hater

1280
# Дата: 23 Мар 2008 20:15


Подключить как обычный js скрипт.

Cryptex
Участник

259
# Дата: 23 Мар 2008 20:21


Оу... я думал её как-то к серверу нужно привинчивать))) извините, я просто в этом деле не силён

Systemnik
Участник

209
# Дата: 10 Апр 2008 13:39


vsjo legko. Ska4aj biblioteku,php sdelaj funkciju po primeru

нуу.. с билиотекой.. все могут.. вот если самому.. без всяких фреймверков...

Roler
USA Hater

1280
# Дата: 10 Апр 2008 14:09


Systemnik
Свой ajax движок собрался писать? Большинство, кто юзает готовые не знаю как они работают, и им на это пофигу.

Cryptex
Участник

259
# Дата: 10 Апр 2008 14:28


А помошники так и не помогли)))

acsid
Alfa Guru

2388
# Дата: 10 Апр 2008 18:58


Systemnik
помоему понятно что человек даже с библиотекой не может разобратся)) а ты ему предлагаешь самому написать

madman
Участник

223
# Дата: 11 Апр 2008 16:50


Cryptex
Вот я тут немного накидал на скорую руку скрипты которые могут такое реилизовать.

letter.html
 
<html> 
	<head> 
		<script language="JavaScript" src="letter.js" type="text/javascript"></script 
> </head> <body onload="sendRequest()"> <div id="letter"></div> </body> </html>



letter.js
 
// XMLHttpRequest 
function GetXmlHttpObject() { 
	var xmlHttp=null; 
	try { 
		// Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest(); 
	} catch (e) { 
		// Internet Explorer 
		try { 
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
	} 
	return xmlHttp; 
} 
var xmlHttp; 
var user; 
 
function sendRequest() { 
	xmlHttp=GetXmlHttpObject() 
	if (xmlHttp==null) { 
		alert ("Browser does not support HTTP Request") 
		return; 
	} 
	var url="/checkMasseges.php" 
	xmlHttp.onreadystatechange=hendler 
	xmlHttp.open("GET",url,true) 
	xmlHttp.send(null); 
} 
 
function hendler() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("letter").innerHTML = xmlHttp.responseText; 
	} 
	setTimeout('sendRequest()', 1000); 
} 



checkMasseges.php
 
<?php 
session_start(); 
$id = $_SESSION['id']; 
 
 
// подключаемся к базе 
$db = mysql_connect("localhost", "root", ""); 
mysql_select_db('database', $db); 
$sql = "SELECT letter_text FROM letters WHERE user_id = '".$id."' ORDER BY date 
LIMIT 1"; $rs = mysql_query($sql); $row = mysql_fetch_row($rs); $lastLetterText = $row[0]; echo $lastLetterText; ?>



Таким образом в <div id="letter"></div> будет отбражатся последнее письмо пользователя и эта инфа будет оновлятся каждые 1000 милисекунд. Письмо будет братся из базы данных.

P.S. Будут вопросы - пиши.

Cryptex
Участник

259
# Дата: 11 Апр 2008 19:04


Огромное человеческое спасибо! Работает! Вот только через некоторое время начинает комп грузить о.О

Есть такой вопрос... а можно как-то сделать, чтобы $lastLetterText Отображалось в <div id="letter"></div>, а например какой-нибудь $prevLetterText в <div id="prev"></div> ?

Systemnik
Участник

209
# Дата: 11 Апр 2008 20:04


бля.. я щас скомуникатора. написал бы код буду с компа.. ну ты подумай сам... для этого нужно просто что бы скрипт отдпал не 1 значение а 2.. подумай как на примере это реализовать..

madman
Участник

223
# Дата: 14 Апр 2008 14:03


» Cryptex
Есть такой вопрос... а можно как-то сделать, чтобы $lastLetterText Отображалось в <div id="letter"></div>, а например какой-нибудь $prevLetterText в <div id="prev"></div> ?


Можно делать все что угодно. Я тебе только пример написал.
Я б сам такой скрипт не использувал, потому как грузит сервер (каждую секунду идет запрос).

Лутше зделать так, чтобы на авторефреше показовалося только наличие новых писем. А уж текст письма отображался по нажатию на линк.

Если у меня появится лишних полчаса времени, то я зделаю нормальний юзабельний скрипт.

Cryptex
Участник

259
# Дата: 14 Апр 2008 15:07


я сделал каждые 10 секунд...(хотя и 20-30 думаю будет достаточно) да и обрабатывающий скрипт очень простой. Он сам по себе не очень грузить будет... но вот комп сей скрипт повесить мне может... (128 Мб RAM о.О) тем более я ещё испытывал как должно быть... т.е. там в работу вступает ещё 1 яваскриптец... короче вместе получается жесть)) да и без 2ого всёравно жесть))

madman
Участник

223
# Дата: 14 Апр 2008 18:33 ° Поправил: madman


Cryptex
Вот тебе скрипт, который уже можна нормально использовать
letter.html

<html> 
	<head> 
		<script language="JavaScript" src="letter.js" type="text/javascript"></script 
> 
	</head> 
	<body onload="sendRequest()"> 
    	<div id="num_letter"></div> 
    	<div id="title_letters"></div> 
    	<div id="body_letter"></div> 
	</body> 
</html> 





letter.js

// XMLHttpRequest 
function GetXmlHttpObject() { 
	var xmlHttp=null; 
	try { 
		// Firefox, Opera 8.0+, Safari 
		xmlHttp=new XMLHttpRequest(); 
	} catch (e) { 
		// Internet Explorer 
		try { 
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
	} 
	return xmlHttp; 
} 
var xmlHttp; 
 
function sendRequest(task, value) { 
	xmlHttp=GetXmlHttpObject() 
	if (xmlHttp==null) { 
		alert ("Browser does not support HTTP Request") 
		return; 
	} 
	var url="/masseges.php?" 
	url += 'task='+task; 
	if (task == 'new') { 
		xmlHttp.onreadystatechange=checkNewLetters; 
	} else if (task == 'title') { 
		xmlHttp.onreadystatechange=getTitle; 
	} else if (task == 'body') { 
		xmlHttp.onreadystatechange=getBody; 
		url += 'value='+value; 
	} else { 
		alert('Wrong task!'); 
		return; 
	} 
	xmlHttp.open("GET",url,true) 
	xmlHttp.send(null); 
} 
 
function checkNewLetters() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("num_letter").innerHTML = xmlHttp.responseText; 
	} 
	setTimeout("sendRequest('new')", 1000); 
} 
 
function getTitle() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("title_letters").innerHTML += xmlHttp.responseText; 
	} 
} 
function getTitle() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("body_letter").innerHTML = xmlHttp.responseText; 
	} 
}





masseges.php

<?php 
session_start(); 
$user_id = $_SESSION['user_id']; 
$task = $_REQUEST['task']; 
$value = $_REQUEST['value']; 
 
// подключаемся к базе 
$db = mysql_connect("localhost", "root", ""); 
mysql_select_db('database', $db); 
switch ($task) { 
	case 'new': 
		$sql = "SELECT COUNT(*) FROM letters WHERE user_id = '".$id."' AND isRead = 0 
"; 
		$rs = mysql_query($sql); 
		$rows = mysql_fetch_row($rs); 
		$numLetters = $rows[0]; 
echo "<a href=\"javascript:sendRequest('title');\">" 
.$numLetters."</a>"; 
	break; 
	case 'title': 
		$sql = "SELECT id  FROM letters WHERE user_id = '".$user_id."' AND isRead = 0 
 ORDER BY date"; 
		$rs = mysql_query($sql); 
		$rows = mysql_fetch_row($rs); 
        if (sizeof($rows) > 0) { 
        	foreach ($rows as $row)	{ 
        		echo "<a href=\"javascript:sendRequest('body', ".$row.")\">Message #" 
.$row."</a><br />"; 
        	} 
        } 
	break; 
	case 'body': 
		$sql = "SELECT letter_text  FROM letters WHERE user_id = '".$user_id."' A 
ND id = '".$value."' LIMIT 1"; 
		$rs = mysql_query($sql); 
		$rows = mysql_fetch_row($rs); 
		$lastLetterText = $rows[0]; 
		echo $lastLetterText; 
		$sql = "UPDATE letters SET isRead = 1 WHERE id = '".$value."' LIMIT 1"; 
		mysql_query($sql); 
	break; 
} 
mysql_close($db); 
?>


. 1 . 2 . >>
Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:51033, gzipped size:12520

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]