powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите с ajax
10 сообщений из 10, страница 1 из 1
Помогите с ajax
    #38244817
exist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

1.
Есть задача, сделать переписку между пользователями как в контакте.
Т.е. чат с функцией "печатает".

Подскажите плиз как делается.

Видел у друга "онлайн консультант" свой. Он говорит что повесил ajax запрос на Jabber.
Но в моем проекте жаббер сервака не будет. Т.е. буду стучать постоянно а БД.

Посмотрел на его сайт. Там висит ajax запрос в течении одной минуты, потом обрывается и стартует новый.

Как я понимаю там стоит вечный цикл с паузой 60 000 милисекунд, который постоянно вешает запрос. (setTimeout знаю, не надо в него тыкать)
А вот как повесить такой запрос не знаю. Обычно ajax отработал, вернул, закончился. (Думаю это связанно как-то с синхоностью/аснихронностью)

В общем подскажите как повесить такой зарос. Чтоб он работал 60 сек.

Ну и подскажите в ту ли я сторону копаю?

2.
Вместе с этим родственная задача.

Надо сделать на сайте у пользователей статус "Онлайн/Оффлайн". Как это делается что-то не пойму. Даже если и повешу запрос, что им щупать?
...
Рейтинг: 0 / 0
Помогите с ajax
    #38244901
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exist, подумайте над тем, чего ждёт браузер (клиент) после того, как отправил запрос серверу.
...
Рейтинг: 0 / 0
Помогите с ajax
    #38244958
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно реализовать клиентскую и серверную части вашей логики :
в Самом простом варианте это будет так :

У Вас есть главная страница index.jsp на ней подключены js скрипты
Есть <div id="userId"></div> в него будем писать время (в идеале это может быть статус , все что угодно)
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="media/js/jquery.js"></script>
        <script type="text/javascript" src="media/js/scanner.js"></script>
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <div id="userId"></div>
    </body>
</html>



Javascript который будет реализовывать пулинг каждые 10000 секунд.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
$(function(){

var globalTimeout = setInterval(call,10000); 

function call(){ 

$.get('status.jsp',
      function (data) {
          $("#userId").append(data).append("<br>");
       }
      );

//ajax code
//console.log(" ping ... " + new Date() );
//TODO  прочтите как это работает http://api.jquery.com/jQuery.ajax/
//$.ajax({
//  url: url,
//  data: data,
//  success: success,
//  dataType: dataType
//});
//  пример для передачи userId  на сервер
//$.ajax({
//      url: 'status.jsp',
//      //data: userId,
//      dataType : "json",
//      success: function (data) { // вешаем свой обработчик на функцию success
//        //$.each(data, function(i, val) {    // обрабатываем полученные данные
//        //console.log(data);
//           $("#userId").append(data);
//        //});
//    } 
//});



}




логика определения активности пользователя ...
его статусов на основе активности сессии или других параметров, запросы к базе данных
(в данном случае просто вернем дату с сервера)
status.jsp

Код: html
1.
2.
3.
4.
5.
6.
<%@page import="java.util.Date"%>
<%@page contentType="text/html" pageEncoding="UTF-8" language="JAVA" trimDirectiveWhitespaces="true"%>
<%
Date date =  new Date();
out.print(date);
%>



опять же таки тут много тонкостей и организовывать это надо немного иначе (javascript через функции callback итд)

но для понимания механизма - этот пример сойдет.
...
Рейтинг: 0 / 0
Помогите с ajax
    #38245023
exist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное я не правильно описываю задачу.
Честно говоря не первый раз получаю не тот ответ.

Т.е. как по интервалу запускать Аякс я знаю.
Меня интересует настройка "висящего" Аякс запроса.
Я видел что так можно. Т.е. вместо того чтоб каждую секунду гадить запросами (а нужно именно так, ибо нужно ловить нажатия клавишь на сторонах клиентов), я хочу повесить "канал"/"аякс-запрос" который один будет висеть 60 секунд, а потом опять же его.

Ещё раз говорю, видел в консоли как это работает. К сожалению с этого сайта убрали конусльтанта. И пример не могу привести.
...
Рейтинг: 0 / 0
Помогите с ajax
    #38245086
The_ShadoW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exist,

Попробуйте вот это почитать.
...
Рейтинг: 0 / 0
Помогите с ajax
    #38245104
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exist,

вы вероятно хотите этого http://habrahabr.ru/post/79038/
...
Рейтинг: 0 / 0
Помогите с ajax
    #38245132
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exist...интересует настройка "висящего" Аякс запроса...не "висящего" а "длинного"

Длинные опросы (long poll) .

P.S.: кстати, первая ссылка в гугле по запросу: "длинный ajax запрос".
...
Рейтинг: 0 / 0
Помогите с ajax
    #38245157
Ну и конкретно для вашей серверной стороны готовые библиотеки, которые реализуют не только WebSockets:
https://github.com/learnboost/socket.io/wiki#in-other-languages
...
Рейтинг: 0 / 0
Помогите с ajax
    #38245332
exist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Буду изучать вопрос. Всем спасибо.
...
Рейтинг: 0 / 0
Помогите с ajax
    #38251984
dreval
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите в сторону SignalR
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите с ajax
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]