Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.11.2017, 12:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от mikello
$name = htmlspecialchars($name); // заменяем опасные теги (<h1>,<br>, и прочие) на безопасные
Это делается при выводе из базы, а не при сохранении.
Ответить с цитированием
  #12 (permalink)  
Старый 20.11.2017, 12:41
Аспирант
Отправить личное сообщение для mikello Посмотреть профиль Найти все сообщения от mikello
 
Регистрация: 18.11.2017
Сообщений: 68

Не помогло.
Вообще странно это, т.к. при первой загрузке (Load(1)) прокручивает до последнего сообщения.
Ответить с цитированием
  #13 (permalink)  
Старый 20.11.2017, 12:45
Аспирант
Отправить личное сообщение для mikello Посмотреть профиль Найти все сообщения от mikello
 
Регистрация: 18.11.2017
Сообщений: 68

Ещё заметил, что функция Send при нажатии на Отправить происходит с некоторой задержкой.
Ответить с цитированием
  #14 (permalink)  
Старый 20.11.2017, 12:49
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,800

mikello, замените в index.php это:
setInterval("Load();", 1000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 миллисекунд)

На это:
setInterval("Load(1);", 1000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 миллисекунд)


Кривой чат, имхо.
Ответить с цитированием
  #15 (permalink)  
Старый 20.11.2017, 12:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от mikello
Не помогло.
Это ответ на мой комментарий? А это не относится к проблемам на клиенте, это к вопросу хранения данных. БД может хранить в себе любые "колющие и режущие" сущности, ей без разницы тег это или текст обычный. А преобразованные в html мнемоники символы сохраненные в базе могут быть источником проблем, к примеру при поиске в ней.

Все таковые преобразования делаются при выводе в браузер.
Ответить с цитированием
  #16 (permalink)  
Старый 20.11.2017, 13:06
Аспирант
Отправить личное сообщение для mikello Посмотреть профиль Найти все сообщения от mikello
 
Регистрация: 18.11.2017
Сообщений: 68

Нет , это ответ на другой комментарий, не ваш.

Nexus, теперь если я хочу просмотреть ранние сообщения я этого сделать не могу, т.к. полоса прокрутки съезжает вниз каждые 1000 мс
Ответить с цитированием
  #17 (permalink)  
Старый 20.11.2017, 13:08
Аспирант
Отправить личное сообщение для mikello Посмотреть профиль Найти все сообщения от mikello
 
Регистрация: 18.11.2017
Сообщений: 68

Цитата:
Кривой чат, имхо.
Я его в интернете нашел, писал не сам. Просто для того, чтобы разобраться в коде.
Ответить с цитированием
  #18 (permalink)  
Старый 20.11.2017, 13:10
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,800

mikello, тогда верните как было и замените отправку post запроса в функции "send" этим:
$.post("ajax.php", {
        act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
        name: $("#pac_name").val(), // имя пользователя
        text: $("#pac_text").val() //  сам текст сообщения
    },
    function() {
        Load(1); // по завершению отправки вызываем функцию загрузки новых сообщений Load()
    })
Ответить с цитированием
  #19 (permalink)  
Старый 20.11.2017, 13:15
Аспирант
Отправить личное сообщение для mikello Посмотреть профиль Найти все сообщения от mikello
 
Регистрация: 18.11.2017
Сообщений: 68

Работает, спасибо большое!

А чем ваш код отличается от второго?:
Цитата:
$.post("ajax.php", {
act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
name: $("#pac_name").val(), // имя пользователя
text: $("#pac_text").val() // сам текст сообщения
},
function() {
Load(1); // по завершению отправки вызываем функцию загрузки новых сообщений Load()
})
Цитата:
$.post("ajax.php", {
act: "send", // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
name: $("#pac_name").val(), // имя пользователя
text: $("#pac_text").val() // сам текст сообщения
},
Load(1))
Ответить с цитированием
  #20 (permalink)  
Старый 20.11.2017, 13:36
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,800

Сообщение от mikello
А чем ваш код отличается от второго?:
Тем, что функция "Load" запускается после завершения запроса к серверу, а не вместе с ним.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как набить репутацию больше чем количество сообщений? EmperioAf Оффтопик 7 04.08.2015 14:54
Прокрутка скролла для чата Wolfak Общие вопросы Javascript 12 08.10.2013 08:48
Логика звукового уведомления о поступлении новых сообщений Триви AJAX и COMET 1 11.08.2011 02:13
Скрипт ajax чата seoabcd Общие вопросы Javascript 2 20.02.2011 18:39
Авто "объединение" последних сообщений ksa Сайт Javascript.ru 0 19.11.2010 11:58