Перейти к содержимому


Фотография

Динамическое обновление информации на странице

Динамическое обновление информации SourceBans

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 16

#1 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 11 Январь 2017 - 14:05

Всем привет.

После того, как я сделал вывод чата с игровых серверов в SourceBans, я решил, что нужно реализовать динамическое обновление чата (то есть вывод сообщений в реальном времени).

Для этого создал отдельный файл (refrash.php), который подключался из файла чата.
В refrash.php я добавил следующий код:

Скрытый текст

 

В итоге чат отлично обновляется, но есть проблема с отображением самого SB, а именно не выводится имя страницы чата. Я уже очень много вариантов перепробовал, даже из index.php подгружал скрипт обновления, после чего переставали адекватно загружаться страницы и не работали некоторые формы.

Я так понял, библиотека jquery конфликтует с чем то в SourceBans, но проблему решить так и не удалось. Может посоветуете что нибудь? Как решить эту задачку? Заранее благодарен!


  • Lesdure это нравится

#2 Santiago

Santiago

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 5 053 сообщений

Отправлено 11 Январь 2017 - 19:58

В SourceBans используется MooTools. Используйте его для аякс запросов (вообще, подключать тяжелый жквери ради использования одной функции - не очень хорошая идея)
Я порекомендую использовать голый XMLHttpRequest

А вообще, в сурсбане для аякс запросов используется xAjax
Используйте его.

Откройте includes/sv-callback.php

 

Сначала необходимо зарегистрировать функцию:

$xajax->registerFunction("ReloadChat");

А затем создать саму функцию:

function ReloadChat()
{
    $objResponse = new xajaxResponse();
    // Делаем логику получения чата
    $chatHtml = '<div>Контент чата</div>';
    $objResponse->addScript("$('block_id').setHTML('{$chatHtml}');");
    return $objResponse;
}

И в шаблоне, где нужно отобразить чат просто вызываем эту функцию:

<script>
setInterval(function() {
    xajax_ReloadChat();
}, 5000);
</script>

  • ykpon это нравится

#3 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 12 Январь 2017 - 9:34

В SourceBans используется MooTools. Используйте его для аякс запросов (вообще, подключать тяжелый жквери ради использования одной функции - не очень хорошая идея)Я порекомендую использовать голый XMLHttpRequestА вообще, в сурсбане для аякс запросов используется xAjax
Используйте его.

Откройте includes/sv-callback.php
 
Сначала необходимо зарегистрировать функцию:

$xajax->registerFunction("ReloadChat");
А затем создать саму функцию:
function ReloadChat()
{
    $objResponse = new xajaxResponse();
    // Делаем логику получения чата
    $chatHtml = '<div>Контент чата</div>';
    $objResponse->addScript("$('block_id').setHTML('{$chatHtml}');");
    return $objResponse;
}
И в шаблоне, где нужно отобразить чат просто вызываем эту функцию:
<script>
setInterval(function() {
    xajax_ReloadChat();
}, 5000);
</script>
Спасибо, домой приду буду пробовать:-)
Решение вроде отличное, сам не в восторге от жквери в СБ

#4 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 12 Январь 2017 - 17:02

В SourceBans используется MooTools. Используйте его для аякс запросов (вообще, подключать тяжелый жквери ради использования одной функции - не очень хорошая идея)
Я порекомендую использовать голый XMLHttpRequest

А вообще, в сурсбане для аякс запросов используется xAjax
Используйте его.

Откройте includes/sv-callback.php

 

Сначала необходимо зарегистрировать функцию:

$xajax->registerFunction("ReloadChat");

А затем создать саму функцию:

function ReloadChat()
{
    $objResponse = new xajaxResponse();
    // Делаем логику получения чата
    $chatHtml = '<div>Контент чата</div>';
    $objResponse->addScript("$('block_id').setHTML('{$chatHtml}');");
    return $objResponse;
}

И в шаблоне, где нужно отобразить чат просто вызываем эту функцию:

<script>
setInterval(function() {
    xajax_ReloadChat();
}, 5000);
</script>

Вот такой код:

//Делаем динамическое обновление чата
function ReloadChat()
{
    $objResponse = new xajaxResponse();
    // Делаем логику получения чата
    $chatHtml = include("modules/chat/chatv34.php");
    $objResponse->addScript("$('#cssv34').setHTML('{$chatHtml}');");
    return $objResponse;
}

И вот такая ошибка аякса:

Скрытый текст


#5 Santiago

Santiago

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 5 053 сообщений

Отправлено 13 Январь 2017 - 23:54

Помочь перевести ошибку?



#6 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 14 Январь 2017 - 17:08

Помочь перевести ошибку?

Я английский знаю, но не могу понять, что не так я сделал... Так как текст ошибки аякса стандартный, а вот вместо расшифровки ошибки - отображается страница с чатом  :( 
Еще я не подключаю шаблоны, мне удобнее напрямую с php файлами работать
Структура чатов у меня такая:

Скрытый текст

(Моя версия PHP 5.5)


Сообщение отредактировал romchik4021: 14 Январь 2017 - 17:45


#7 Santiago

Santiago

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 5 053 сообщений

Отправлено 15 Январь 2017 - 4:01

В sb-callback.php ты возвращаешь не то, что требуется. Вот и ошибка



#8 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 16 Январь 2017 - 8:53

В sb-callback.php ты возвращаешь не то, что требуется. Вот и ошибка


Эх, знать бы как правильно это реализовать...

#9 CrazyHackGUT

CrazyHackGUT

    Пользователь

  • Пользователь
  • PipPipPip
  • 153 сообщений

Отправлено 16 Январь 2017 - 20:08

@romchik4021, покажите нам код Вашей функции в sb-callback.php, и мы покажем Вам, как надо правильно реализовать.



#10 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 17 Январь 2017 - 15:15

@romchik4021, покажите нам код Вашей функции в sb-callback.php, и мы покажем Вам, как надо правильно реализовать.

Вот такая функция в sb-callback.php (по разному пробовал)

Скрытый текст


И вот такая структура чата:
Скрытый текст


#11 Santiago

Santiago

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 5 053 сообщений

Отправлено 17 Январь 2017 - 21:03

Ссылку в лс скинь



#12 ruskydubl

ruskydubl

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 510 сообщений

Отправлено 17 Январь 2017 - 21:45

Ссылку в лс скинь

trapserver.ru



#13 Santiago

Santiago

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 5 053 сообщений

Отправлено 18 Январь 2017 - 9:32

А страница с чатом где?

ЗЫ 49 секунд на открытие страницы с банами. Жестко)


Скорее всего из-за этого тормозит

 

A Parser-blocking, cross-origin script, http://static.cloudim.ru/js/chat.js, is invoked via document.write



#14 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 18 Январь 2017 - 12:14

А страница с чатом где?

ЗЫ 49 секунд на открытие страницы с банами. Жестко)


Скорее всего из-за этого тормозит

На счет загрузки страниц, да, проблема именно с консультантом (сайт консультанта не доступен), подожду пару дней и снесу его если не заработает.
Я включил страницу с чатом -> вот он 
(пока что все чаты подключены к 1 базе данных (cssv34))



#15 CrazyHackGUT

CrazyHackGUT

    Пользователь

  • Пользователь
  • PipPipPip
  • 153 сообщений

Отправлено 18 Январь 2017 - 12:20

//Делаем динамическое обновление чата
function ReloadChat()
{
    $objResponse = new xajaxResponse();
    // Делаем логику получения чата. Запросы к БД там, etc.
    $objResponse->addAssign("cssv34", "innerHTML", $chat);
    return $objResponse;
}


#16 romchik4021

romchik4021

    Участник

  • Пользователь
  • PipPip
  • 125 сообщений

Отправлено 18 Январь 2017 - 15:58

//Делаем динамическое обновление чата
function ReloadChat()
{
    $objResponse = new xajaxResponse();
    // Делаем логику получения чата. Запросы к БД там, etc.
    $objResponse->addAssign("cssv34", "innerHTML", $chat);
    return $objResponse;
}

А для чего $chat ?



#17 Santiago

Santiago

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 5 053 сообщений

Отправлено 18 Январь 2017 - 17:27

А для чего $chat ?

$chat это пример. В этой переменной должна быть строка, которая будет записана в элемент с ID cssv34


  • CrazyHackGUT это нравится



Темы с аналогичным тегами Динамическое, обновление, информации, SourceBans

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных