2013-10-01 2 views
1

У меня есть простой сайт с заголовком, левым меню и основным контентом.
Я уже сделал это с одной статической страницы (index.php), а затем использовать jquery изменить основное содержание, нажав на пункт меню:php include vs jquery load

$('#divR').load('chapters/abc.php'); 

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

Не могли бы помочь с этой дилеммой?

+1

Есть две причины, почему это может быть улучшением: это уменьшит время загрузки страницы, и это позволит прямые ссылки – jantimon

+1

Что делать, если у клиента отключен JavaScript? – Mark

+0

@jantimon, спасибо, но как это возможно? Используя 'load', вся страница' index.php' уже загружена. Нет необходимости загружать всю страницу каждый раз, как в случае использования 'php include'? – bonaca

ответ

3

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

Учитывая это, вы должны выбрать наиболее подходящий вариант, чтобы улучшить работу пользователя. Я никогда не использовал ajax для загрузки полной страницы, потому что есть слухи, что Google не индексирует эти асинхронные ссылки. Однако некоторые люди говорят, что google-бот - это своего рода полноценный браузер, не пропускающий аякс-звонки. Я не знаю, поэтому я сохраняю его и загружаю важный «основной» контент через полное обновление страницы, посещая другой URL-адрес. Это также приведет к тому, что браузеры снова и снова (история) будут работать. Это не будет с вызовами ajax, потому что они асинхронны.

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

+0

Спасибо, kasper, может быть, этого достаточно – bonaca

1

Я использую <?php include "file.html"; ?> ОЧЕНЬ часто сейчас, потому что он имеет некоторые преимущества перед jQuery .load.

У меня есть много других скриптов на веб-сайте и как-то, если я использую .load, jQuery, взаимодействующий с этим контентом, не работает, потому что после этого он загружается. Несмотря на то, что в <head> и вы не используете $(document).ready(function() { CODE }); и он должен быть загружен в первый ...

Но если вы используете <?php include "file.html"; ?>, содержание будет загружен до ваших нагрузок Jquery поэтому Javascript может взаимодействовать с содержимое, загруженное в этот файл.

Я не знаю, как объяснить, но, по крайней мере, это не работает для меня, как должно, может быть потому, что php - это серверный язык.