2013-04-10 8 views
0

У меня есть некоторые страницы Wordpress с кодом javascript, которым требуются ссылки на javascript. Для страниц, которые не вызывают функции в этих ссылках на файлы js, не должно быть влияния на производительность для включения этих файлов (кроме вызова файла)?Выполняется ли javascript, если функция не вызвана?

- EDIT в ответ на @cdhowie -

Если только некоторые страницы требуют эти JavaScript файлов, можно переместить их из головной части и на странице? Я читал, что это плохая практика.

Но теоретически это предотвращает попадание всего сайта на файлы, которые не используются?

+0

Если дерево падает в лес, и никто не слышит его, звучит ли он? – Ian

+1

@Ian В этом случае, да. – cdhowie

+0

@cdhowie Я ничего не слышал. – Ian

ответ

1

Функции Javascript выполняются только при явном вызове их (или неявно в обратных вызовах и еще много чего). Однако код будет по-прежнему интерпретироваться браузером на каждой странице независимо от вызываемых функций или нет.

Редактировать: Я был неправ, чтобы сказать, что удар по производительности не имеет значения. Это действительно зависит от вашей конкретной ситуации (где код исходит, сколько кода и т. Д.), А также о том, насколько вы заботитесь о производительности в миллисекундах.

Одна из возможных проблем с производительностью - если эти дополнительные файлы .js находятся на вашем сервере. Если это так, и вы загружаете их, когда они не нужны, вы вызываете ненужный трафик и пропускную способность в отношении вашего сервера.

+0

Просто так я понимаю, вы не согласны с ответом @ cdhowie? – 4thSpace

+0

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

+0

@DevinLynch Но я думаю, что включение ссылки на внешний файл Javascript (и даже не использование его) является самым большим достижением производительности ... потому что он должен сделать отдельный HTTP-запрос и загрузить (возможно) большой файл, который также нужно интерпретировать и ничего не делать с этим. Сетевое взаимодействие обычно является узким местом, а не браузерами. Если бы код был встроенным в HTML, тогда это не было бы большим бременем, потому что нет отдельного HTTP-запроса. – Ian

3

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

Так что да, будет влияние на производительность, независимо от того, вызываете ли вы функции. Независимо от того, достаточно ли это для вас беспокоиться, вам нужно будет определить. (Всегда профиль времени загрузки вашей страницы, прежде чем принимать решения, как это!)

+0

, но пока вы не вызываете функции, вы должны быть в порядке (по большей части) – ebadedude

+1

@ebadedude Определите «хорошо». – cdhowie

+0

Я обновил вопрос в отношении вашего ответа. – 4thSpace

1

Это будет выполняться, но не занимает очень мало времени центрального процессора

<script type="text/javascript"> 
    // just a comment 
</script> 

никаких функций, просто комментарий ... но это все-таки «код », все еще необходимо проанализировать, все еще нужно проверить на синтаксические ошибки и т. д.

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