JavaScript: usare callback AJAX globali all'interno degli oggetti

JavaScript: usare callback AJAX globali all'interno degli oggetti

In JavaScript possiamo usare i callback AJAX globali anche all'interno degli oggetti. Vediamo come.

Supponiamo di voler prelevare un album di foto da Flickr. Le API di Flick utilizzano il parametro jsoncallback che accetta come valore il nome di una funzione globale.

Sapendo che globale in JavaScript vuol dire semplicemente trovarsi nello scope dell'oggetto window come sua proprietà, possiamo scrivere:


"use strict";

(function() {
	function Flickr() {
		this.init();
	}
	
	Flickr.prototype = {
		init: function() {
			this.user = "123456789@ABC";
			this.album = "0123456789";
			
			
			window.getPhotos = this.getPhotos; // Il metodo è ora una funzione globale
			
			this.getJSON();	
		},
		getJSON: function() {
			var src = "http://api.flickr.com/services/feeds/photoset.gne?nsid=" + this.user + "&set=" + this.album + "&format=json&jsoncallback=getPhotos";	
			var script = document.createElement( "script" );
				script.src = src;
				document.body.appendChild( script );
		},
		getPhotos: function( data ) {
			var limit = 3;
			
			if( data && data.items ) {
				// Le nostre foto
			}	
		}
	};
	
	document.addEventListener( "DOMContentLoaded", function() {
		var flickrFeed = new Flickr();
		
	});
	
})();

Torna su