Мини-чатик в один файл на PHP, HTML, CSS и JS

01.05.2014 18:24
3
Вобщем дело было так - собрался с праздновать свой ДР, народ мол "давай список подарков и все такое, а то подарим тебе надувную бабу по умолчанию" :)

Ну добили они меня - составил я список подарков, нужных мне, чтоб не пылились потом на полочке. И дальше встал вопрос - а как сделать, чтобы народ (много народа), не знающий или плохо знающий друг друга, все это могли обсудить и скооперироваться?

Отправить всем емейлы? А если люди не хотят чтобы кто-то еще знал их емейл? То же и про телефоны. Экзотические вещи вроде гуглспредщитов и всякой другой онлайн-ахинеи мне были не сильно интересны - все-таки конфиденциальная информация :)

И вообще, программист я или где?

За час с небольшим был написан мини-чатик с пасьянсом и дурными феями, еще час на доделывания хотелок от народа и час на дебаг.

Вроде даже все получилось и даже понравилось. (Хотя время от времени раздавались вопли мол “Ну че за херня - файл нельзя отправить, голосовое сообщение тоже, и вообще какого хрена без 3D?”)

На следующий выходной день потратил часов 5 на приведение всего это к красоте, а теперь хочу представить это дело Вам - вдруг кому сгодится, и времени тратить не надо будет.

Фишки:

  • Весь чат одним файлом на PHP + HTML + CSS + JS
  • Никакой БД, вся история хранится в HTML файлике, куда засовываются уже оформленные в HTML сообщения
  • Авторизации тоже не предусмотрено - все свои
  • Никаких WebSockets и long polling-ов - старый добрый хардкорный "А есть чо?"
  • Запоминание выбранного ника в куках
  • Вырезание всякого "ге" из текста и ника при постинге и ограничение их по длине
  • Обрезка подгружаемого куска чата
  • Отправка данных только в случае, если они были изменены (но отправляется весь кусок)
  • Отключаемый автоскролл
  • Возможность задать время опроса, путь до файла с чатом, длину пересылаемого куска, оформление сообщений
  • Блокирование диалогов при загрузке и постинге, если скорость низкая
  • Подсказки в случае всяких фейлов
  • Кросс-браузерная работа - традиционно WebKit-ы (Chrome, Safari и др.), Firefox.
    IE браузером не считаю - это программа типа WGET для скачивания файлов (в том числе нормальных браузеров) просто с GUI - но и в нем должно работать, пусть и не так красиво
  • Без каких-либо jQuery и других фреймворков - только чистый JS, только хардкор
  • Все максимально просто, коротко, понятно и со вкусом
  • Огромное пространство для творчества и модификаций

Пользуйтесь на здоровье!

P.S. Иногда вот так покодить на чистом JS, вспомнить как сделать анимацию вручную, как работают стандартные селекторы и написанная с нуля обвязка XMLHttpRequest - это просто клево.

Вообще, чистый JS и когда ты сам себе в коде хозяин, а не лениво просишь "Эй, jQuery дай-ка мне тот DIV и отправь его содержимое по AJAX на воон тот URL!" - это приятно и полезно для мозгов :)

Скачать chat.php, версия от 08.05.14

скачать

01.05.2014, Protocoder
Борис21.11.2014 22:52:55#ответить
Отличный Мини-чатик... ОГРОМНОЕ СПАСИБО!!!
Protocoder22.11.2014 22:52:05#ответить
Всегда пожалуйста :)
пользователь18.07.2016 14:51:26#ответить
Спасибо!
Написать комментарий