123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- goog.provide('goog.net.BulkLoader');
- goog.require('goog.events.EventHandler');
- goog.require('goog.events.EventTarget');
- goog.require('goog.log');
- goog.require('goog.net.BulkLoaderHelper');
- goog.require('goog.net.EventType');
- goog.require('goog.net.XhrIo');
- goog.net.BulkLoader = function(uris) {
- goog.events.EventTarget.call(this);
-
- this.helper_ = new goog.net.BulkLoaderHelper(uris);
-
- this.eventHandler_ = new goog.events.EventHandler(this);
- };
- goog.inherits(goog.net.BulkLoader, goog.events.EventTarget);
- goog.net.BulkLoader.prototype.logger_ =
- goog.log.getLogger('goog.net.BulkLoader');
- goog.net.BulkLoader.prototype.getResponseTexts = function() {
- return this.helper_.getResponseTexts();
- };
- goog.net.BulkLoader.prototype.getRequestUris = function() {
- return this.helper_.getUris();
- };
- goog.net.BulkLoader.prototype.load = function() {
- var eventHandler = this.eventHandler_;
- var uris = this.helper_.getUris();
- goog.log.info(
- this.logger_, 'Starting load of code with ' + uris.length + ' uris.');
- for (var i = 0; i < uris.length; i++) {
- var xhrIo = new goog.net.XhrIo();
- eventHandler.listen(
- xhrIo, goog.net.EventType.COMPLETE,
- goog.bind(this.handleEvent_, this, i));
- xhrIo.send(uris[i]);
- }
- };
- goog.net.BulkLoader.prototype.handleEvent_ = function(id, e) {
- goog.log.info(
- this.logger_, 'Received event "' + e.type + '" for id ' + id +
- ' with uri ' + this.helper_.getUri(id));
- var xhrIo = (e.target);
- if (xhrIo.isSuccess()) {
- this.handleSuccess_(id, xhrIo);
- } else {
- this.handleError_(id, xhrIo);
- }
- };
- goog.net.BulkLoader.prototype.handleSuccess_ = function(id, xhrIo) {
-
- this.helper_.setResponseText(id, xhrIo.getResponseText());
-
- if (this.helper_.isLoadComplete()) {
- this.finishLoad_();
- }
- xhrIo.dispose();
- };
- goog.net.BulkLoader.prototype.handleError_ = function(id, xhrIo) {
-
-
- this.dispatchEvent(goog.net.EventType.ERROR);
- xhrIo.dispose();
- };
- goog.net.BulkLoader.prototype.finishLoad_ = function() {
- goog.log.info(this.logger_, 'All uris loaded.');
-
- this.dispatchEvent(goog.net.EventType.SUCCESS);
- };
- goog.net.BulkLoader.prototype.disposeInternal = function() {
- goog.net.BulkLoader.superClass_.disposeInternal.call(this);
- this.eventHandler_.dispose();
- this.eventHandler_ = null;
- this.helper_.dispose();
- this.helper_ = null;
- };
|