Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Моя статья о создании ajax чата на php. 
:(
    Опции темы
MoLeX
Дата 9.10.2009, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(nerezus @  9.10.2009,  09:25 Найти цитируемый пост)
Код совершенно не понравился.
Комментировать код не умеем: додумался комментировать даже синтаксис, типа циклов.
много лишнего кода, например считывание из базы в массив.
Незнание синтаксиса SQL и обход незнания через array_reverse.


+

1. если у тебя и твой чат так построен то за что тебе деньги платят (за такой код мне лично жалко платить)?!
2. Если размещаешь статью, то размещай её на форуме


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Elfet
Дата 12.10.2009, 17:10 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(nerezus @  9.10.2009,  10:25 Найти цитируемый пост)
много лишнего кода, например считывание из базы в массив.

Нет, совсем не лишний. 

Цитата(nerezus @  9.10.2009,  10:25 Найти цитируемый пост)
Незнание синтаксиса SQL и обход незнания через array_reverse.

Нет, синтаксис построен так как мне удобно было бы объяснить работу кода. 

Цитата(nerezus @  9.10.2009,  10:25 Найти цитируемый пост)
Не понравилась спичечная "типа оптимизация"(прирост ибо 0%) конкатенации строки в ухудшение читаемости. 

"типа" я не понял про что вы?

Цитата(MoLeX @  9.10.2009,  11:40 Найти цитируемый пост)
1. если у тебя и твой чат так построен то за что тебе деньги платят (за такой код мне лично жалко платить)?!

Мне платят за работу которую я проделал при проектировании, программировании и кодировании чата.

Цитата(MoLeX @  9.10.2009,  11:40 Найти цитируемый пост)
2. Если размещаешь статью, то размещай её на форуме 

MoLeX, скопировал. 


--------------------
PM MAIL WWW Skype   Вверх
nerezus
Дата 12.10.2009, 18:27 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Нет, синтаксис построен так как мне удобно было бы объяснить работу кода. 
 "Ну и что, что код через задницу, так его объяснять удобнее?"
Неужели?


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Elfet
Дата 12.10.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



nerezus, я не вижу причин тому что бы называть мой код "через задницу".


--------------------
PM MAIL WWW Skype   Вверх
nerezus
Дата 12.10.2009, 19:15 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



google://ORDER BY


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
bars80080
Дата 12.10.2009, 19:32 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(nerezus @  12.10.2009,  19:15 Найти цитируемый пост)
google://ORDER BY 

наверно, что-то умное
PM MAIL WWW   Вверх
Elfet
Дата 12.10.2009, 20:06 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Вы что, неужели думаете что я не знаю что такое ASC и DESC?  

По тому что вы увидели у меня  в коде только DESC|array_reverse и не поняли зачем это, я могу судить о том что вы ещё мало разбираетесь в программировании вообще и в кодинге на php. 


--------------------
PM MAIL WWW Skype   Вверх
solenko
Дата 12.10.2009, 20:12 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(Elfet @  12.10.2009,  19:06 Найти цитируемый пост)
По тому что вы увидели у меня  в коде только DESC|array_reverse и не поняли зачем это

Я как бы тоже не понял. Поделитесь таинством?

Добавлено через 4 минуты и 10 секунд
Цитата(Elfet @  7.10.2009,  15:38 Найти цитируемый пост)
 
Код

foreach ( $messages as $value )
                {
                        // продолжаем формировать скрипт для отправки пользователю
                        $js .= 'chat.append("<span>' . $value['name'] . '&raquo; ' . $value['text'] . '</span>");'; // добавить сообщние (<span>Имя &raquo; текст сообщения</span>) в наш div
                }

А зечем много раз дергать DOM дерево? Почему не собрать одну строку и не аппендить ее один раз?



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Elfet
Дата 12.10.2009, 21:20 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(solenko @  12.10.2009,  21:12 Найти цитируемый пост)
А зечем много раз дергать DOM дерево? Почему не собрать одну строку и не аппендить ее один раз?

Тут согласен. Можно сделать и так, возможно это даже лучше когда у нас 10000 сообщений за раз приходит, однако больше 10 у меня за раз прийти не может, так что я думаю тут это не критично.



Цитата(solenko @  12.10.2009,  21:12 Найти цитируемый пост)
Я как бы тоже не понял. Поделитесь таинством?

Дело в том что иначе усложняется SQL запрос для выбора последних N сообщений.


--------------------
PM MAIL WWW Skype   Вверх
solenko
Дата 13.10.2009, 00:53 (ссылка) |   (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Код

SELECT * FROM messages WHERE ( id > $last_message_id ) ORDER BY id DESC LIMIT 10

А что будет если пользователи будут писать более 10 ссобщений в 2 секунды? Пользователь никогда не увилит актуальное состояние чата? Зачем вообще нужел limit? 
Цитата(Elfet @  12.10.2009,  20:20 Найти цитируемый пост)
Дело в том что иначе усложняется SQL запрос для выбора последних N сообщений.

Я сразу и внимания то не обратил. Вопросы по этому поводу выше.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
MoLeX
Дата 13.10.2009, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(solenko @  13.10.2009,  00:53 Найти цитируемый пост)
А что будет если пользователи будут писать более 10 ссобщений в 2 секунды? Пользователь никогда не увилит актуальное состояние чата? Зачем вообще нужел limit? 

точно. я даже и не обратил внимание. 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Elfet
Дата 13.10.2009, 15:55 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



solenko, более 10 сообщений в 2 секунды - это уже спам, это не нужно добавлять в базу уже. 

А LIMIT 10 нужен затем что бы при первой загрузке не показывать пользователю всю базу целиком, а только последние 10 сообщений.


--------------------
PM MAIL WWW Skype   Вверх
nerezus
Дата 13.10.2009, 20:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Elfet, 
Цитата

Дело в том что иначе усложняется SQL запрос для выбора последних N сообщений.
 нисколько не усложняется.

Цитата

А LIMIT 10 нужен затем что бы при первой загрузке не показывать пользователю всю базу целиком, а только последние 10 сообщений.
 Первый раз можно установить эту переменную в необходимое значение.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Elfet
Дата 13.10.2009, 21:25 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(nerezus @  13.10.2009,  21:55 Найти цитируемый пост)
 Первый раз можно установить эту переменную в необходимое значение. 

В своей реализации я решил сделать именно так, так как мне кажется для объяснения принципов лучше, а нагружать код всякими излишними наворотами не нужно.

Добавлено через 2 минуты и 48 секунд
Используя DESC и LIMIT я убил двух зайцев - начальную инициализацию (загрузку последних 10 сообщений, получение id последнего сообщения) и подгрузку новых сообщений.


--------------------
PM MAIL WWW Skype   Вверх
solenko
Дата 14.10.2009, 09:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(Elfet @  13.10.2009,  14:55 Найти цитируемый пост)
solenko, более 10 сообщений в 2 секунды - это уже спам, это не нужно добавлять в базу уже. 

1. А цифры вы инженерно-потолочным способом определяли?
2. Даже если это спам, то данные все равно будут вставлятся в базу, а вот полезное сообщение, полученное после него, пользователь не увидит
3. Вы или не застал эпоху чатов, либо просто никогда не бывали на популярном чате. Такое количество сообщений -- мелочи

Добавлено через 2 минуты и 48 секунд
Цитата(Elfet @  13.10.2009,  20:25 Найти цитируемый пост)
В своей реализации я решил сделать именно так, так как мне кажется для объяснения принципов лучше, а нагружать код всякими излишними наворотами не нужно.

Как раз таки для учебного процесса лучше объяснить, что инициализация чата и получение сообщений -- разные подзадачи

Добавлено через 3 минуты и 58 секунд
Цитата(Elfet @  13.10.2009,  20:25 Найти цитируемый пост)
Используя DESC и LIMIT я убил двух зайцев - начальную инициализацию (загрузку последних 10 сообщений, получение id последнего сообщения) и подгрузку новых сообщений.

нет, вы убили других двух зайцев: внесли ненужные ограничения на функционал и сделали код нелогичным


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.