2013-02-27 2 views
-1

Каковы последствия для создания веб-страницы путем написания библиотеки функций, которые отображают разметку при рассмотрении реализации на стороне сервера (PHP) и реализации клиента (jquery)?Что происходит быстрее для создания разметки, jquery или php?

Серверная сторона: Клиент делает запрос, сервер делает отметку через запуск программы php, отправляет разметку клиенту, браузер загружает его и отображает веб-страницу.

function makeTitle($text) { 
    echo <<<HTML 
    <style> 
    #title { 
    color:red; 
    } 
    </style> 
    <div id = "title">{$text}</div> 
    HTML; 
} 

makeTitle("This appears as red text"); 

стороне клиента: Клиент делает запрос, браузер отправляется клиенту в файл .html, браузер клиента делает наценки, загружает его и веб-страницы отображаются.

var text; 
function title(text) { 
$('body').html(function() { 
    return '<div id = "title">'+text +'</div>'; 
}); 
$("#title").css("color","red"); 
} 

title("This appears as red text"); 

, реализация которых будет более эффективной, так что пользователю придется ждать меньше времени, либо на сервер, чтобы запустить программу PHP или браузер, чтобы запустить яваскрипт программы и в какие случаях будет каждая реализация наиболее эффективный с точки зрения генерации статических css и html?

+4

Вам придется протестировать его, но я подозреваю, что сервер будет очень, очень быстрым. jQuery не является демоном скорости, сервер должен иметь гораздо больше хрюкать, чем однопоточный клиент (который может быть планшетом или телефоном). – RobG

+0

Все зависит от характера приложения и его предполагаемого дизайна. Это не вопрос, на который нужно ответить только на уровне скорости/эффективности. В каждом варианте есть компромиссы на множестве разных уровней. – prodigitalson

+0

Я отредактирую вопрос, чтобы было ясно, что я не собираюсь создавать CMS – Emanegux

ответ

4

Генерация на сервере будет быстрой, но вы упомянули запрос в jQuery для файла .html. Почему бы не сгенерировать html на лету с помощью jQuery? Вы можете создать элемент DOM, передав объект jQuery закрытым тегам HTML, например $('<div/>'). Вот реализация с использованием приведенного вами примера.

function makeTitle(text) { 
    $('body').append(
     $('<div/>', { 
      id: 'title' 
     }).css({ 
      color: 'red' 
     }) 
    ); 
} 

makeTitle("This will appear as red text"); 

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

0

Я думаю, что создание разметки через PHP более надежно, как если бы javascript был отключен в браузерах, чем, вероятно, не будет отображаться разметка.

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

+0

-1 для «Генерация разметки PHP не займет много времени». – kay

0

Я бы пошел с PHP. Разница во времени обработки будет минимальной, однако она также будет работать для клиентов, у которых не включен javascript, и не требует накладных расходов на загрузку jQuery, если он не используется в другом месте.

+0

Это было больше аргументом в 2008 году. Это почти как аргумент поддержки IE6. – 2013-02-27 03:59:13

+0

Вопрос также является аргументом 2008 года, будет ли ускорение обработки строки на стороне сервера или редактирования клиентской части DOM. Поэтому, похоже, даже небольшие улучшения производительности имеют значение для OP. – sjdaws

+1

@ pst Многие браузеры, используемые людьми, которые нуждаются в вспомогательных технологиях (например, люди с нарушениями зрения), хуже, чем IE6 на длинном дворе. Я бы не исключил эту проблему, не зная больше о предполагаемом приложении и целевой аудитории OP. – Paul

4

Еще одна проблема при использовании javascript для разметки рендеринга заключается в том, что ваша разметка будет невидимой для веб-сканеров. Не лучший способ пойти, если SEO является проблемой.

+1

Это очень интересный момент. Должны быть методы отправки метаданных для искателей через ajax для чисто клиентской реализации. – Emanegux

Смежные вопросы