При создании сайта, в качестве личного предпочтения, мне нравится создавать основной файл javascript, который имеет window.load и window.ready прямо в верхней части файла.Перемещение за пределы простого написания документов в документе document.ready()
Как средство разборчивости Я стараюсь реорганизовать любую логику, которую я хочу в рамках этих функций, в свои собственные функции, и, как правило, я выполняю только функции, если эти элементы существуют в DOM.
По большей части я чувствую, что это чище, чем сбрасывать все непосредственно в функции загрузки/готовности, но по мере того, как мои навыки javascript увеличиваются, и я начинаю писать больше анонимных функций, и мой код начинает немного выглядеть путаницы, так как часть готового документа начинает увеличиваться.
Для целей этого вопроса я хотел бы знать:
- Есть ли лучший способ только запустить функцию/код для проверки длины пути я?
- Есть ли лучший способ включить вышеупомянутую проверку в способ написания моих плагинов?
- Первичный вопрос: Как перейти от написания одиночных сценариев, основанных на jQuery, как средство улучшения моих навыков работы с JavaScript.
Я привел пример того, как выглядят мои файлы.
$(window).load(function() {
if ($('#el-1').length !== 0) { $('#el-1').addClass('add'); }
});
$(document).ready(function() {
if ($('#el-2').length !== 0) { new my_plugin('#el-2'); }
if ($('#el-3').length !== 0) { simple_function(); }
/* This starts to get messy when there's multiple checks,
// longer function names, and different libraries etc.
*/
});
var simple_function = function() {
//do the short thing
};
;(function(window, $) {
'use strict';
function my_plugin(el, options) {
this.el = $(el);
this.options = $.extend(this.defaults, options);
this._init();
}
my_plugin.prototype = {
defaults : {
something: 'something'
},
_init : function() {
// do the things
}
_internalFunction: function() {
// do the things
},
externalFunction: function() {
// do the things
}
}
window.my_plugin = my_plugin;
})(window , jQuery);
Ну, TBH это, вероятно, вопрос, основанный на мнениях. Что самое лучшее, я не знаю. У меня есть предпочтения, но это может вас не устраивать. Например, мне нравится использовать 'require.js' для разделения моих файлов, и я создал свою собственную среду представления, которая использует атрибут data-view' для автоматического запуска представления. Некоторые могут предпочесть использовать маршрутизатор, такой как тот, который находится в Backbone ... –
В настоящее время я работаю над созданием агентства после того, как вы покинули маркетинговые сайты с быстрым переворачиванием ... Я изменил свой вопрос, чтобы лучше подойти, я думаю, что моя основная проблема: «Как перейти от написания сценариев с одним jQuery-ориентиром, чтобы улучшить мои навыки работы с JavaScript». Имея в виду, мне нужно, чтобы это был довольно быстрый и легкий процесс.Я согласен с тем, что мой вопрос субъективен ... Я буду исследовать require.js – christoshrousis