Загружать визуализированный контент, шаблоны Jquery или Bigpipe?Создание сложного сайта - PullRequest
2 голосов
/ 17 января 2011

Я знаю, что этот вопрос был задан, как сделать сайт, как Facebook / Gmail, как при загрузке в контенте.

Но ответы на местах весьма скудны. Чтобы помочь, я провел некоторые исследования. Кто-нибудь изучал это и может дать какие-то указания?

У меня есть 3 разных маршрута:

1) jquery.load (загрузить в html), загрузить в css и получить скрипт JS.

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

Было бы разумно использовать глобальные переменные JS или скрытые div?

2) Бигпайп.

Я видел реализации этого для .net. Но кто-нибудь знает о реализации PHP. Я вижу это на github: https://github.com/dynamoid/bigpipe Но меня это не слишком впечатлило. Любые другие реализации?

3) Шаблоны Jquery

Я немного исследовал это. Будет ли это лучший путь? Даже если я смогу сначала загрузить шаблон (и кэшировать), а затем применить к нему данные. Я до сих пор не могу понять, какие CSS и JS загружаются на страницу.

Наконец, если вам известны какие-либо ресурсы, в которых рассказывается о выборе лучших практик, сообщите мне.

Спасибо:)

Ответы [ 2 ]

2 голосов
/ 19 марта 2011

Я думал, что вернусь и отвечу на этот вопрос.

После просмотра этого блога: http://jmperezperez.com/ Я придумал собственное решение.

1) Я создал каркас заголовка, содержимого и нижнего колонтитула. Позднее заголовок и области содержимого получили идентификаторы для загрузки содержимого в них.

2) Используя адрес Jquery, я смог обновить адресную строку при переходе по сайту без каких-либо обновлений страницы.

3) Затем на бэкэнде я собираю json для обратной передачи содержимого, которое может состоять из нескольких элементов div, а затем загружать JS и CSS.

4) Затем я создал скрипт для динамической загрузки в CSS и JS и отслеживания того, что уже было загружено. CSS и JS не могут быть загружены дважды, если страница запрашивается более одного раза.

Может позже, я проверю, как сделать вещи намного лучше: http://jmperezperez.com/talk-facebook-frontend-javascript/

Теперь мой сайт работает так же, как Facebook / Gmail. Никакая страница не обновляется вообще, хорошо кроме входа и выхода.

Если кто-нибудь знает какие-либо репозитории github, которые работают с одностраничными приложениями, использующими jquery. Дайте мне знать.

Спасибо

0 голосов
/ 10 декабря 2012

Я бы настоятельно рекомендовал использовать реализацию bigpipe, а не то, что вы делаете, например версию garo https://github.com/garo/bigpipe, написанную на PHP и Prototype.

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

Я протестировал bigpipe при установке WordPress и могу сказать, что время загрузки было увеличено на 3000%, что связано с узкими местами загрузки внешних данных, таких как изображения, файлы JS и CSS, при загрузке страниц.Я связал это с плагином PHP Speedy, который я изменил, чтобы очистить все бесполезные пробелы и сжать CSS и Javascript и все остальное в одну строку кода и могу сказать вам, что стоит внедрять в свой сайт, а не полагаться на методы AJAX.Если вы используете JQuery, вам может потребоваться использовать функцию noConflict, чтобы предотвратить конфликт двух разных библиотек JS.

Вы можете получить его отсюда: https://github.com/garo/bigpipe

Если выиспользуйте его, и вы увидите, что это лучше, чем то, что вы делаете!

...