23.12.2011, 17:47
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
http://jsfiddle.net/XSGub/56/ — вот, вынес что мог в прототипы. Фигня в том, что когда вызывается runNext, он выполняется в контексте window. Заставлять писать кого-то runNext.call(this) — неправильно. A Function.prototype.bind слишком крупный, если хотим сделать кроссбраузерно.
|
|
23.12.2011, 17:49
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Так что нужно обязательно замыкать callback в конструкторе. Есть идеи?
|
|
23.12.2011, 18:07
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от FINoM
|
какие есть альтернативы? Мутулз — те же яйца, прототайп — вырвиглазное говнище..
|
только бок у них более "объектно-ориентированный" и гибкий, хм...
правда, если рассматривать кверю не как функцию ($(selector).method()), а как объект ($.css(element, prop)), то гибкость повышается... но этот пост вообще не об этом!
/* что такое JavascriptMVC ? кто может вкратце обьяснить его суть? */
я погуглил насчёт альтернативы jquery и мне понравился qooxdoo. драг'н'дроп и другие плюшки их коробки.есть механизм поиска эл-ов по селектору (взят из Mootools). расскажите, что вы думаете об этом фреймворке библиотеке.
|
|
23.12.2011, 20:26
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
wait = function(first) {
return new wait.Init(first);
}
wait.Init = function(first) {
var self = this;
this.callbackCaller = function() {
self.callback.apply(self, arguments);
}
first.call(this, this.callbackCaller);
}
wait.Init.prototype = {
deferred: [],
callback: function() {
this.args = [].slice.call(arguments);
this.args.unshift(this.callbackCaller);
if (this.deferred.length) {
this.done = false;
this.deferred[0].apply(this, this.args);
this.deferred.shift();
}
if (!this.deferred.length) {
this.done = true;
}
},
wait: function(run) {
if (this.done) {
this.done = false;
run.apply(this, this.args);
} else {
this.deferred.push(run);
}
return this;
},
data: function(item, value) {
if (arguments.length === 2) {
this.data[item] = value;
} else {
return this.data[item];
}
}
}
Так и не придумал, как коллбек всунуть в прототип: http://jsfiddle.net/finom/XSGub/64/
Последний раз редактировалось FINoM, 24.12.2011 в 00:11.
|
|
23.12.2011, 20:29
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Сообщение от FINoM
|
Но мутулз сейчас используется редко, как и прототайп.
|
ну я понял, что для тебя важна популярность
Сообщение от FINoM
|
Так что нужно обязательно замыкать callback в конструкторе. Есть идеи?
|
извини, не хочется вникать в код
Сообщение от melky
|
/* что такое JavascriptMVC ? кто может вкратце обьяснить его суть? */
|
jquery done serious надстройка над jquery для разработки больших приложений, похоже, я не пробовал
Сообщение от melky
|
я погуглил насчёт альтернативы jquery и мне понравился qooxdoo. драг'н'дроп и другие плюшки их коробки.есть механизм поиска эл-ов по селектору (взят из Mootools). расскажите, что вы думаете об этом фреймворке библиотеке.
|
надо смотреть
|
|
23.12.2011, 20:34
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
ну я понял, что для тебя важна популярность
|
Мне важно сколько я на этом заработаю
--------------------------
Пытаюсь разобраться в backbonejs, смотрю примеры, понимаю как они работают, но не понимаю главного: зачем они так работают и как строить хваленные масштабные приложения с помощью сабжа. Может есть какие-нибудь статьи или книга "для чайников"?
|
|
23.12.2011, 20:59
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
backbone.js и javascriptMVC - близкие вещи, я сам не пробовал, но есть некто DjDiablo, который всячески советовал. Возможно, к этому приходишь, когда появляется желание покрыть код тестами. Наверное, это имеет смысл делать, когда у тебя скорее веб-приложение, чем сайт.
|
|
23.12.2011, 21:04
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от x-yuri
|
Наверное, это имеет смысл делать, когда у тебя скорее веб-приложение, чем сайт.
|
Щас делаю онлайн плеер (с плейлистами, жанрами, тегами, обложками и еще кучей всего), но вот код немножечко превращается в кашу, уже два раза переписывал. Хотелось бы впредь не долбаться над переписыванием, когда заказчику хочется добавить очередную функцию.
|
|
23.12.2011, 22:43
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
скорее всего ты слишком упрощаешь. А тесты должны помогать уменьшить количество ошибок при изменениях. Под веб-приложениям я понимаю что-то, что работает в пределах одной страницы, gmail, например. По твоему описанию непонятно, как у тебя. Можно плеер сделать в виде сайта, хотя лучше сделать без перезагрузки - музыка будет прерываться между страницами.
|
|
23.12.2011, 23:54
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Да, это веб приложение на одной странице.
Сообщение от x-yuri
|
А тесты должны помогать уменьшить количество ошибок при изменениях.
|
Юнит тестирование? Я так и не понял, как правильно их применять на таких проектах.
Сообщение от x-yuri
|
скорее всего ты слишком упрощаешь.
|
Наверно, особенно не глядя в код
|
|
|
|