форум вебмастеро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 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 Таким образом в <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 . >> |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:51033, gzipped size:12520 |