Cacheable JSONP Test

by johannes

JavaScript

/*$.ajax({
    url: "http://localhost:9091/data.jsonp#abc=123",
    dataType: "jsonp",
    jsonp: "foobar",
    success: function(d){
        console.log("?#data");
        console.log(d);
    }
});*/

var JSONP = {
    callbacks: {},
    randomCallbackName: function(){
      return "CB" + parseInt(Math.random()*999999, 10);
    },
    get: function(url, callback){
      var callbackName = this.randomCallbackName();
      var scriptElement = document.createElement('script');
      var src = url + "#callback=JSONP.callbacks." + callbackName;
      scriptElement.src = src;
      
      SC.Helper.attachEvent(scriptElement, "load", function(){
        document.body.removeChild(scriptElement);
      });

      SC.Helper.JSONP.callbacks[callbackName] = callback;
      document.body.appendChild(scriptElement);
    }
  };
    
JSONP.get("http://localhost:9090/data.jsonp", function(){
    console.log("hello!");
}