Форумы xBB

Форумы xBB > BBCode и прочие языки упрощенной разметки

Выявил ошибку!

Автор: Гость Станислав. Последнее редактирование: 2012-10-10 22:30:29

Одним словом вводим сплошной строкой текст
77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777

10 комментариев

10.10.2012 22:31:59 #
Google Chrome Гость
Собственно можете ее уже лицезреть! Скормите парсеру сплошную строку цифрами (1856 символов). Парсер сломается Well
10.10.2012 22:33:36 #
Google Chrome Гость
Ах да, так же парсер жутко долго грузится, если вложенность тегов очень глубокая.
Ну и оч мало каких то регуляторов производительности на мой взгляд! А так программа отличная.
11.10.2012 08:06:23 #
Mozilla Firefox dima
Спасибо за сообщение. Будет время, займусь оптимизацией.
11.10.2012 15:39:00 #
Google Chrome Гость
Кстати! Обработка текста одно из самых узких мест пхп. Да и к чему нагружать сервер, если обработку бб-кодов можно переложить на клиента. Конечно надежнее, когда вы формируете 100% совместимый результат, но кто сейчас работает с отключенным яваскриптом - фанатики? А если и отключен, то извините, ничто не мешает отключить браузеру CSS, мы же не стремимся предусмотреть все клиентские фокусы, верно? Подумайте над более серьезной реализацией Вашего потенциала! Удачи!
11.10.2012 16:53:45 #
Mozilla Firefox dima
Я все таки предпочитаю грузить сервер, а не клиента. Если кэшировать обработанный ББКод, нагрузка на сервер практически не возрастает.
31.10.2012 08:45:40 #
Google Chrome Nutty
Кстати! Обработка текста одно из самых узких мест пхп.
Если грамотно обрабатывать текст то нечего узкого нету всё в пределах допустимости интерпретируемого языка.
Да и к чему нагружать сервер, если обработку бб-кодов можно переложить на клиента.
А вот тут я с вами не соглашусь, нельзя это делать.
Причина 1 загрузка вашей страницы сайта очень изрядно пострадает из ходя из того что придется DOM чутле не экскаватором обрабатывать.
Причина вторая не у всех пользователей мощный компьютер, а это огромный факт в этом вопросе почему потому что пример моих тестов показал 200 изменений за минуту в DOM на гугл хроме загружает 2 ядерный процессор на 20% учтем форум к примеру с любителями использовать множество BBCode и к примеру хоть по 20бб коду в посте учитывая ещё  к примеру подписи и получим среднее 25 в посте умножим на деф 10 постов на страницу и получается 250 изменений DOM 20+% загрузки процессора у клиента как то не красиво выходит а если ещё есть на сайте или форуме флеш реклама или плеер банер и тд то и того больше загрузка к тому-же.
Ах да, так же парсер жутко долго грузится, если вложенность тегов очень глубокая
в конечном итоге напоритесь на это, а клиентам такая вещь не понравится) они могут понять что сервер загружен но некогда не смогут понять что это их комп не тянет)
Собственно можете ее уже лицезреть! Скормите парсеру сплошную строку цифрами (1856 символов). Парсер сломается
Это вполне естественно почему потому что на хостингах как правило лимит стоит по затратам на память и процессор)
проверил на WAMP(е) у себя даже и строку в 65471 сим. обработал с ббкодами и ктому-же рандомно с генерированную с ошибками ббкодов, скажу лиш одно не быстро и ресурсо ёмко но отработал)
31.10.2012 09:00:22 #
Google Chrome Nutty
Ну и оч мало каких то регуляторов производительности на мой взгляд!
В прицепе нечего не мешает, вам в цикл парсирования в строить переменную типо $is_level = 0;
с каждой процедурой цикла инкремент $is_level++; потом на нужному уровне прекратить парсировать теги.
 
А для тех кому не хватает производительности небольшой совет по мне самый продуктивный и менее ресурсо ёмкий.
К примеру есть таблица:
posts
 post_id
 др... поля
 др... поля
 post_content
 др... поля
Добавляем в неё ещё поле
 post_content_final
После чего делаем некоторые модификации в своем коде, а это:
При добавление сообщения чтобы сообщение отправленное пользователем записывалось в поле post_content а дальше при том-же добавление сообщения парсим ббкоды и отпарсеный вариант сообщения кладём в поле post_content_final.
 
После чего при отображение сообщений убираем парсирование ббкодов и выводим информацию из поля post_content_final.
 
тоже касается и функции редактирования но в ней механика мы пользователю покажем в форме поле post_content от отредактирует свой пост после чего мы новый вариант от парсим снова и обновим эти два поля.
 
также в принципе для улучшения поиска можно добавить в туже таблицу ещё поле.
 post_content_nobb
в которое записывать тот-же пост но уже без каких либо ббкодов.
31.10.2012 13:38:26 #
Mozilla Firefox dima
Спасибо за подробное описание кеширования обработанного BBCode в БД. Это, действительно, решает все проблемы с производительностью Well
24.11.2012 13:49:08 #
Google Chrome Гость Станислав
Это вполне естественно почему потому что на хостингах как правило лимит стоит по затратам на память и процессор)
проверил на WAMP(е) у себя даже и строку в 65471 сим. обработал с ббкодами и ктому-же рандомно с генерированную с ошибками ббкодов, скажу лиш одно не быстро и ресурсо ёмко но отработал)

Ошибка не в длине строки, и не в настройках интерпритатора! Вы сводите каждой предложение к каким то своим знаменателям, это мешает Вам заметить многие другие логические аспекты вопроса.
 
Мне ни что не мешает делать какие то подвыподверты, но обычным пользователям - мешает! Если мы делаем какую то библиотеку для использования, то делаем ее завершенной и целостной, это одно из условий программирования! Если Вы делаете не библиотеку, а фрейм, то так и пишите - xbb это фрейм, а не библиотека. Библиотека в контексте функции, возложенной на нее, является решением законченным!
 
На счет дополнительного поля для "распарсенных" результатов - это полный финиш...
24.11.2012 13:59:13 #
Mozilla Firefox dima
На счет дополнительного поля для "распарсенных" результатов - это полный финиш...

Стандартное решение, которое применяется практически во всех форумных движках. Это решение - не более чем один из вариантов кеширования. Что может быть "финишного" в кешировании?

Ответить:

Представиться как     Антибот:
   

Просьба не постить мусор. Пользуйтесь кнопкой предварительного просмотра на панели инструментов редактора.

Введите логин: и пароль: (

© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.