2010-09-30 6 views
1

Для удобства обслуживания я хочу, чтобы база данных подключала мой javascript, поскольку я хочу только отправить javascript, который необходим на основе параметров пользователей.Что происходит быстрее и почему?

Итак, это быстрее/меньше ресурса, тяжело иметь ссылки в базе данных, указывающие на файлы javascript, а затем использовать response.writefile для встраивания этих файлов на страницу клиента, или это быстрее/меньше ресурса, тяжелого для вставки javascript скрипт прямо в базу данных, а response.write его на экран по мере необходимости?

ответ

3

Таким образом, это быстрее/меньше ресурсов тяжело иметь ссылки в базе данных, указывающие на файлы JavaScript

Обычно да.

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

Кроме того, наличие кода JavaScript в статическом файле (вместо динамического, который извлекает код из базы данных по каждому запросу), является самым быстрым и наименее ресурсоемким решением.

+0

Так кажется, что response.writefile'ing javascript-ссылка лучше, чем response.write'ing javascript? – oshirowanen

+0

@oshiro Я действительно не понимаю, почему вам вообще нужно использовать 'response.write/writefile'? Почему бы просто не ссылаться на статический ресурс? –

+1

Это была моя идея, что OP будет искать ссылки на файлы (из БД), необходимые, а затем записывать их на страницу. –

2
  1. Не использовать Response.Write.
  2. Помните, что если вы отправите весь JS-файл один раз, клиент будет/должен кэшировать его, чтобы его не нужно было отправлять повторно.
  3. DB ищет каждую страницу, чтобы получить соответствующий JS будет медленным.
+0

Итак, если у меня есть много хорошо названных файлов javascript в каталоге, а response.writefile их на страницу, не будет ли кешировать файлы javascript? – oshirowanen

+0

Зачем вам ответ. Напишите, когда они уже существуют в виде файлов? – cjk

+0

Таким образом, я могу динамически выбирать, какие скрипты отправляются пользователю на основе пользовательских настроек, а не отправлять огромное количество javascript. – oshirowanen

1

Отправляя ссылки на javascript для клиента, вам нужно будет создать отдельный HTTP-запрос, чтобы идти и получать каждый файл.

Если вы вставляете только необходимый javascript непосредственно на страницу, когда это необходимо, это предотвращает это. Посмотрите на jQuery, который получил доступ к javascript для клиента, который не используется.

Меньше HTTP-запросов, как правило, приводит к более быстрому веб-сайту, поэтому я бы пошел с вложением кода напрямую.

Edit:

Я не согласен с кэширования ответов выше. Если вы гарантируете, что вложен только самый маленький размер javascript, то мой ответ должен быть быстрее. Эта страница будет также кэширована!

+0

Если страница динамическая, она не будет кэшироваться. – cjk

+0

Если вы вставляете только необходимый javascript непосредственно на страницу, когда это необходимо, это предотвращает это. – oshirowanen

+0

Это то же самое, что и response.writefile? – oshirowanen

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