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, время: 11:26. |