http://jsfiddle.net/XSGub/56/ — вот, вынес что мог в прототипы. Фигня в том, что когда вызывается runNext, он выполняется в контексте window. Заставлять писать кого-то runNext.call(this) — неправильно. A Function.prototype.bind слишком крупный, если хотим сделать кроссбраузерно.
|
Так что нужно обязательно замыкать callback в конструкторе. Есть идеи?
|
Цитата:
правда, если рассматривать кверю не как функцию ($(selector).method()), а как объект ($.css(element, prop)), то гибкость повышается... но этот пост вообще не об этом! /* что такое JavascriptMVC ? кто может вкратце обьяснить его суть? */ я погуглил насчёт альтернативы jquery и мне понравился qooxdoo. драг'н'дроп и другие плюшки их коробки.есть механизм поиска эл-ов по селектору (взят из Mootools). расскажите, что вы думаете об этом |
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];
}
}
}
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
-------------------------- Пытаюсь разобраться в backbonejs, смотрю примеры, понимаю как они работают, но не понимаю главного: зачем они так работают и как строить хваленные масштабные приложения с помощью сабжа. Может есть какие-нибудь статьи или книга "для чайников"? |
backbone.js и javascriptMVC - близкие вещи, я сам не пробовал, но есть некто DjDiablo, который всячески советовал. Возможно, к этому приходишь, когда появляется желание покрыть код тестами. Наверное, это имеет смысл делать, когда у тебя скорее веб-приложение, чем сайт.
|
Цитата:
|
скорее всего ты слишком упрощаешь. А тесты должны помогать уменьшить количество ошибок при изменениях. Под веб-приложениям я понимаю что-то, что работает в пределах одной страницы, gmail, например. По твоему описанию непонятно, как у тебя. Можно плеер сделать в виде сайта, хотя лучше сделать без перезагрузки - музыка будет прерываться между страницами.
|
Да, это веб приложение на одной странице.
Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 00:33. |