Перейти к публикации

Как реализовать AJAX навигацию на DLE 9.8?


Рекомендованные сообщения

Здравствуйте, уважаемые форумчане. У меня есть проигрователь, который проигрывает радио, и мне нужна AJAX навигация для того, чтобы плеер не останавливался при переходе на другую страницу.. Как это реализовать?

Ссылка на сообщение
Поделиться на других сайтах

Наверно поиском не пользуетесь да?

первая ссылка http://dle-faq.ru/mo...dle-9h-v36.html

Пробовали уже :) На 9.8 не работает :)

Всё работает, но я лично убрал из за несовместимости с рейтингом. И вообще один геморой с настройкой + не поддерживает любые свое нароботки. Крайне недоработанный я скажу модуль.

А! Ещё он машу (нововведение dle) не поддерживает, а это очень плохо.

Изменено пользователем Nekroviktor
Ссылка на сообщение
Поделиться на других сайтах

Наверно поиском не пользуетесь да?

первая ссылка http://dle-faq.ru/mo...dle-9h-v36.html

Пробовали уже :) На 9.8 не работает :)

Всё работает, но я лично убрал из за несовместимости с рейтингом. И вообще один геморой с настройкой + не поддерживает любые свое нароботки. Крайне недоработанный я скажу модуль.

А! Ещё он машу (нововведение dle) не поддерживает, а это очень плохо.

Гыгы... Не бывает модулей, которые все могут, тем более такая сложная задача как перевод на AJAX. Не даром убрали этот функционал из 9 версии...

Да и вроде автор предупреждает, что без знаний JS нечего ставить.

Ссылка на сообщение
Поделиться на других сайтах

Наверно поиском не пользуетесь да?

первая ссылка http://dle-faq.ru/mo...dle-9h-v36.html

Пробовали уже :) На 9.8 не работает :)

Всё работает, но я лично убрал из за несовместимости с рейтингом. И вообще один геморой с настройкой + не поддерживает любые свое нароботки. Крайне недоработанный я скажу модуль.

А! Ещё он машу (нововведение dle) не поддерживает, а это очень плохо.

Гыгы... Не бывает модулей, которые все могут, тем более такая сложная задача как перевод на AJAX. Не даром убрали этот функционал из 9 версии...

Да и вроде автор предупреждает, что без знаний JS нечего ставить.

Конечно эффектно смотрится, но если смотреть со стороны нагрузки на сервер с ajax вы ничего не выигрываете, я смотрел результаты тестов, получается, что в некоторых случаях нагрузка на сервер больше с ajax, нежели без него..

Ссылка на сообщение
Поделиться на других сайтах

Такого быть не может. как и для клиента так и для сервера - нагрузка уменьшается.

Интересны тесты - даже по логике неверные - покажите результаты тестов, занимаюсь этой тематикой.

Ссылка на сообщение
Поделиться на других сайтах

Такого быть не может. как и для клиента так и для сервера - нагрузка уменьшается.

Поверьте вы заблуждаетесь. Именно из-за возросшей нагрузки это было удалено из стандартного DLE. Потому что при текущих возможностях скрипта, нужно делать сотни дополнительных проверок и выполнения лишнего кода, чтобы обеспечить полноценную совместимость. Плюс даже при Ajax навигации вы все равно выполняете почти весь код DLE, а то что вы сэкономите на AJAX навигации, давно итак кешируется скриптом и не выполняется даже без AJAX навигации.

Всегда важен баланс, а не что то одно. Нельзя просто так бросаться в крайности полагаясь что если AJAX это обязательно экономия нагрузки потому что не вся страница загружается, это неверно. Нарушив баланс вы получаете перекос в нагрузке. Вы экономите на httpd процессах, но излишне перегружаете CPU на выполнение лишнего PHP кода.

Ссылка на сообщение
Поделиться на других сайтах

Такого быть не может. как и для клиента так и для сервера - нагрузка уменьшается.

Поверьте вы заблуждаетесь. Именно из-за возросшей нагрузки это было удалено из стандартного DLE.

Это вы заблуждаетесь.

Есть JS скрипт, который читает GET запрос страницы и только dle-content заменяет на сайте. (т.е. разницы нет - обычный запрос или AJAX)

Если убрать в PHP дополнительные запросы - в частности те, что кэшируются (топ, календарь и тп) - будет уменьшена нагрузка (и не надо говорить что кэш не грузит проц), так же ещё некоторые вещи убрать - тоже будет меньше. Это касается серверной части

На клиентской части - понятно что уменьшается нагрузка, тут вопросов наверно то нет.

Если использовать спец модули, вероятно авторы предусматривают такие вещи

Изменено пользователем a1ex
Ссылка на сообщение
Поделиться на других сайтах

Есть JS скрипт, который читает GET запрос страницы и только dle-content заменяет на сайте. (т.е. разницы нет - обычный запрос или AJAX)

Вы прочитали через строчку мое сообщение, а я в нем не зря написал:

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

И эти проверки делаются именно в общем коде скрипта.

Если убрать в PHP дополнительные запросы - в частности те, что кэшируются (топ, календарь и тп) - будет уменьшена нагрузка (и не надо говорить что кэш не грузит проц), так же ещё некоторые вещи убрать - тоже будет меньше. Это касается серверной части

Процессор нагружает создание кеша, а не его чтение. Это кешируется независимо от того используется Ajax или нет, и эти модули на сервере не выполняются независимо от того используется Ajax или нет если создан кеш. Они и без AJAX навигации не выполняются. Кеш создается не тогда когда вы по навигации ходите, а намного раньше еще во время посещения главной страницы или вообще первого посещения любой страницы. И включив Ajax навигацию, вы никак не экономите на создании кеша.

На клиентской части - понятно что уменьшается нагрузка, тут вопросов наверно то нет.

Не нагрузка а расход траффика это разные вещи. При этом не уменьшается, а возрастает. Удивлены? Наверняка у вас встал немой вопрос, как же так я гружу не всю страницу при AJAX, а расход траффика увеливается и больше чем при загрузке всей страницы. Объясняю как и почему. В DLE существует такая функция как сжатие Gzip всего контента, и например общий вес всей вашей страницы 100kb, а после сжатия в браузер от сервера передается всего примерно 9kb, а не 100. При использовании подгрузки на AJAX нельзя использовать подобное сжатие потому JS скрипты не распаковывают контент, им нужно отдавать всегда незапакованный контент. И включив AJAX навигацию и загружая только например центральную часть вы будете передавать например 50KB кода, вместо 9kb общего веса которая передается при загрузке всей страницы.. Разница я думаю понятна и ощутима. При AJAX в данном случае траффик на клиентскую часть растет а не уменьшается.

Ссылка на сообщение
Поделиться на других сайтах

Потому что при текущих возможностях скрипта, нужно делать сотни дополнительных проверок и выполнения лишнего кода, чтобы обеспечить полноценную совместимость.
Какие ещё сотни проверок? Всего одну - поддерживает ли браузер History Api

При использовании подгрузки на AJAX нельзя использовать подобное сжатие потому JS скрипты не распаковывают контент, им нужно отдавать всегда незапакованный контент
Здрасти приехали! Уже как пару лет успешно отдаю сжатый контент по ajax и распаковывает его не скрипт, а браузер (который собственно и делает запрос и получает ответ)

Поддерживаю мысль о том, что использование ajax в любом случае экономит ресурсы и трафик

Изменено пользователем Александр Медведев
Ссылка на сообщение
Поделиться на других сайтах

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

И эти проверки делаются именно в общем коде скрипта.

Я не собираюсь холиварить. Явно могу сказать - не сотни а всего 1. Я знаю как реализована AJAX навигация от n0wheremany - будет удивлением наверно для вас.

Если убрать в PHP дополнительные запросы - в частности те, что кэшируются (топ, календарь и тп) - будет уменьшена нагрузка (и не надо говорить что кэш не грузит проц), так же ещё некоторые вещи убрать - тоже будет меньше. Это касается серверной части

Процессор нагружает создание кеша, а не его чтение. Это кешируется независимо от того используется Ajax или нет, и эти модули на сервере не выполняются независимо от того используется Ajax или нет если создан кеш. Они и без AJAX навигации не выполняются. Кеш создается не тогда когда вы по навигации ходите, а намного раньше еще во время посещения главной страницы или вообще первого посещения любой страницы. И включив Ajax навигацию, вы никак не экономите на создании кеша.

Я имел ввиду, если при AJAX запросе в $config явно переопределить такие вещи как топ и календарь и прочую вещи, то ни чтение ни запись - вообще вызываться не будут.

На клиентской части - понятно что уменьшается нагрузка, тут вопросов наверно то нет.

Не нагрузка а расход траффика это разные вещи. При этом не уменьшается, а возрастает. Удивлены? Наверняка у вас встал немой вопрос, как же так я гружу не всю страницу при AJAX, а расход траффика увеливается и больше чем при загрузке всей страницы. Объясняю как и почему. В DLE существует такая функция как сжатие Gzip всего контента, и например общий вес всей вашей страницы 100kb, а после сжатия в браузер от сервера передается всего примерно 9kb, а не 100. При использовании подгрузки на AJAX нельзя использовать подобное сжатие потому JS скрипты не распаковывают контент, им нужно отдавать всегда незапакованный контент. И включив AJAX навигацию и загружая только например центральную часть вы будете передавать например 50KB кода, вместо 9kb общего веса которая передается при загрузке всей страницы.. Разница я думаю понятна и ощутима. При AJAX в данном случае траффик на клиентскую часть растет а не уменьшается.

Странно конечно от вас это слушать. Ну сжали вы 100 кБ в 9кБ - и что? картинок на сайте на мегабайт и вся оптимизация в одно место. Есть конечно кэш браузера, но я не об этом.

Вообще то я имел ввиду именно нагрузку. Видел многие сайты в частности киношные, где шаблон Ппц как перегружен всякими рюшечками и картинками. Сайт грузится по 10-20 секунд, при переходе на AJAX грузится лишь небольшая часть структуры DOM.

celsoft, Вас никто не заставляет делать AJAX навигацию. Есть несколько людей которые на этом собаку съели, пусть они это и делают дальше. А вы лучше перепишите код под классы ))) Я не указываю что делать, просто хотелось бы ядра нормального у дле, и уменьшения повтора кода

Ссылка на сообщение
Поделиться на других сайтах

Какие ещё сотни проверок? Всего одну - поддерживает ли браузер History Api

Причем здесь ваш History Api? Я писал про возможности скрипта DLE, а не про возможности самой навигации. Например скрипт DLE динамически нужные библиотеки только если они используются, например если есть thumb на страницах он подгрузит highslide. При AJAX навигации нужно проверить что используется AJAX навигация и подключить заранее, независимо от того нужна она конректной странице или нет. И т.д. Это лишь наглядный пример одной проверки. Есть еще огромное количество других, простите описывать все их тут, просто займет много времени. Я же вам написал, что вы читаете мои сообщения через строки. Потому как я написал: Потому что при текущих возможностях скрипта, нужно делать сотни дополнительных проверок и выполнения лишнего кода, чтобы обеспечить полноценную совместимость.

А вы мне про History Api.

Ну сжали вы 100 кБ в 9кБ - и что? картинок на сайте на мегабайт и вся оптимизация в одно место.

Если бы я делал скрипт по вашей логике, то у вас был бы не DLE, а Joombla2. Для вас строчка кода не нагрузка, лишний запрос мелочь, 100 кб не не вес и т.д.

Есть конечно кэш браузера, но я не об этом.

Сайт грузится по 10-20 секунд, при переходе на AJAX грузится лишь небольшая часть структуры DOM.

А я об этом, ваши картинки и рюшечки браузер не загружает повторно при переходе от одной страницы к другой. Если у вас так, то у вас проблемы либо с браузером, либо с настройками сервера. А исправление подобный проблем путем использования Ajax называется костыли.

Здрасти приехали! Уже как пару лет успешно отдаю сжатый контент по ajax и распаковывает его не скрипт, а браузер (который собственно и делает запрос и получает ответ)

Мы обсуждаем конретный модуль, на который написали:

в некоторых случаях нагрузка на сервер больше с ajax, нежели без него..

И в котором подобной поддержки нет, по крайней мере не было когда я видел его ранее.

Я не собираюсь холиварить. Явно могу сказать - не сотни а всего 1. Я знаю как реализована AJAX навигация от n0wheremany - будет удивлением наверно для вас.

И как следствие комментарии на сайте:

Баг в HS. HS скрипт закрытый, поэтому не могу найти решение. Самое интересное, что они при нажатии на картинку создают это поле, причем, после закрытия так оно и остаётся. Решение - сменить это гавно на другое, либо отключить этот слайдер в админке.

При этом на стандартной AJAX навигации HS работал без проблем. HS лучший слайдер и обладающий самым невероятным набором функций и возможностей, а автор модуля просто написал "это гавно", потому что не смог решить простейшей проблемы.

DLE тоже работает без проблем, но с каждым новым релизом есть пять шесть пунктов, связанных с исправлением каких нибудь багов. Которые не видит 99% пользователей, но они выявляются и исправляются. Точно также с вашей навигацией, если вы не увидели никаких багов при простом обычном просмотре на вашем сайте, это не значит что багов нет, просто в вашей конфигурации, вашего сайта вам повезло и проблем нет. Но попробуйте протестировать все возможности скрипта совместно с навигацией, и баги полезут как грибы.

Ну да собственно разговор идет не о багах, а о нагрузке на сервер. И она в данном случае не ниже, точнее будет сказать, она иногда может быть ниже, но чаще она выше.

Ссылка на сообщение
Поделиться на других сайтах

celsoft, Вас никто не заставляет делать AJAX навигацию. Есть несколько людей которые на этом собаку съели, пусть они это и делают дальше. А вы лучше перепишите код под классы ))) Я не указываю что делать, просто хотелось бы ядра нормального у дле, и уменьшения повтора кода

А нагрузка под AJAX меньше. Сами же понимаете что это так

Ссылка на сообщение
Поделиться на других сайтах

А нагрузка под AJAX меньше. Сами же понимаете что это так

Смотря для чего, например календарь работает на AJAX и нагрузка действительно меньше, а если все подряд выводить на AJAX, то с чего она станет меньше? Но да я не буду вас переубеждать, хотите в это верить, то верьте.

Ссылка на сообщение
Поделиться на других сайтах

А нагрузка под AJAX меньше. Сами же понимаете что это так

Смотря для чего, например календарь работает на AJAX и нагрузка действительно меньше, а если все подряд выводить на AJAX, то с чего она станет меньше? Но да я не буду вас переубеждать, хотите в это верить, то верьте.

Какие тесты или данные предоставить?

Ссылка на сообщение
Поделиться на других сайтах

Какие тесты или данные предоставить?

Вы хотите чтобы я все персонально для вас сделал и предоставил? Свои тесты я проводил, перед принятием решения о том чтобы убрать эту возможность из стандартного DLE. Это было больше года назад. Для себя вы можете провести собственные тесты. Их главное правильно сделать.

Ссылка на сообщение
Поделиться на других сайтах

Какие тесты или данные предоставить?

Вы хотите чтобы я все персонально для вас сделал и предоставил? Свои тесты я проводил, перед принятием решения о том чтобы убрать эту возможность из стандартного DLE. Это было больше года назад. Для себя вы можете провести собственные тесты. Их главное правильно сделать.

Т.е. в следующих версиях DLE включение данной функции будет отсуствовать?

Ссылка на сообщение
Поделиться на других сайтах

Т.е. в следующих версиях DLE включение данной функции будет отсуствовать?

Эта функция давно уже отсутствует в DLE, уже не один год.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...