2016-01-28 5 views
-1

У меня есть веб-приложение, в котором используется много встроенного javascript. Например:Binding javascript: встроенный или внешний (или скрипт)

<input type="button" id="btn1" onclick="return test();"> 

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

<input type="button" id="btn1"> 

и в разделе сценария я бы нас:

<script type="text/javascript> 
    btn1.onclick = function() {   
       test(); 
    } 
</script> 

или

<script type="text/javascript>  
    if (btn1.addEventListener){ 
     btn1.addEventListener('click', test, false); 
    }else if (btn1.attachEvent){  
     btn1.attachEvent('onclick', test); 
    } 
</script> 

Почему я хочу это сделать ? Мне нравится отделять мой пользовательский интерфейс от бизнес-логики и базы данных, это мой общий подход. Кроме того, это лучше с точки зрения производительности, поскольку внешний javascript может быть проще кэшироваться браузерами. Другая причина - более безопасная. Мой вопрос заключается в том, стоит ли хлопотать о смене приложения, удалив все встроенные javascript?

Я был бы признателен, если бы кто-то дал мне несколько указателей, некоторые ссылки на статьи - я искал в Интернете и нашел какую-то противоречивую информацию. Был бы рад услышать некоторые мнения

+2

Я думаю, что вы ответили на свой собственный вопрос. Но я бы сказал: да, это стоит того, что нужно для удобства/очистки. – Hatchet

+1

https://en.wikipedia.org/wiki/Unobtr usive_JavaScript – Teemu

+0

Насколько простота обслуживания, если моя функция находится внутри тега скрипта на странице, не будет ли она иметь очень мало отличий в плане обслуживания, если она связана с кодом и встроенным? – ElenaDBA

ответ

-1

С точки зрения обслуживания гораздо проще иметь как минимум два отдельных файла: html и js. После этого вы можете иметь разделение между пользовательским интерфейсом, бизнес-логикой и данными. Вы можете проверить this question для получения дополнительной информации о шаблонах дизайна.

+0

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

+0

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

-1

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

Я бы сделал еще один шаг вперед и предположил, что вы также выиграете от каркаса (заберите свой яд, есть много хороших вариантов, но jQuery - хорошее место для начала, поскольку оно очень хорошо документировано и обрабатывает много например, у вашего шаблона (например, в браузере и т. д.)

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

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