2012-01-02 1 views
3

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

1) У меня есть 26 строк текста, которые я использую, и некоторые из них повторяются в нескольких функциях. Итак, я подумал, что если было бы неплохо объявить все это глобальными варами?

2) 95% моего кода - это javascript, остальное - JQuery. Логика очень проста. Стоит ли конвертировать весь мой JS-код в JQuery?

Пример кода:

email = document.getElementById('email').value; 
    document.myForm.submit(); 
+2

jquery - это javascript, и объявление глобалов - это не очень хорошая идея, пока она не понадобится дизайну. – Rafay

+1

Если вы можете, я бы предложил вместо этого направить ваш 5% -ый код jQuery на обычный JavaScript. Вы уменьшите нагрузку на всю загрузку библиотеки вместе с обычным кодом, большинство из которых не используются и не требуют. –

+0

Ну, я использую некоторые функции JQuery, такие как .show и .hide на div. Также я не знал, что JavaScript быстрее и лучше, чем JQuery. Мне сказали, что JQuery лучше подходит для кросс-браузерной совместимости, и я должен поддерживать FF и IE. – ThiagoPonte

ответ

4

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

Однако я бы предпочел сгруппировать словарь в один объект или модуль. Это уменьшит беспорядок в глобальном пространстве имен, укажет на то, что переменные связаны, и позволит вам выполнять итерацию и управлять ими лучше (если вы этого хотите). Это та же самая причина использования массивов вместо переменных x1, x2, ..., xn.

//setting up the strings 
var strings = { 
    //string id : string value 
    'a' : 'a string', 
    'b' : 'another string' 
}; 

//using the strings 
console.log(strings.a); 
console.log(strings.['a']); 

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

+0

Я новичок в JavaScript, но я поговорю с моим начальником об этом изменении, чтобы использовать объекты. – ThiagoPonte

2

1), если вам нужно получить доступ, что строки везде может быть лучше определить только один глобальный вар, в которой хранятся все строки (это может быть array или object) в противном случае рассмотрим группировку этих функций в замыкании (так называемая «непосредственно самозанятая функция»), а затем объявление этого массива (или объекта) внутри созданной области. например

(function() { 
    var hastrings = { 
     'string1' : 'value1', 
     'string2' : 'value2', 
     ... 
    }; 

    /* all functions using common strings here */ 

}()); 

2) Это зависит от того, вы должны принять во внимание, сколько LOC можно было бы написать с помощью JQuery только строит вместо этого, но помните, что некоторые команды могут быть более производительным использованием прямой JavaScript (потому что вы всегда вызывать jQuery функция). Поэтому нет окончательного ответа. Он может варьироваться в зависимости от того, что делает ваш код, насколько он сложный и как вы его структурировали.

2

1) Согласно вашему сценарию, вы можете объявить глобальным, вы чувствуете, что глобальную переменную лучше писать, чем жесткую кодировку везде.

2) Jquery является Java-основа (Ajax)

document.getElementById('email') is faster than $("#email") 

так Javascript лучше держать, и если у вас есть какие-либо сложный код, который Jquery делает с минимальными усилиями, то вы можете использовать в тех мест.

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

  • Нет связанных вопросов^_^