[Catalyst] [Task] Building a better JavaScript (AJAX) toolkit
Don Arbow
donarb at nwlink.com
Wed Dec 21 01:34:35 CET 2005
On Dec 20, 2005, at 2:44 PM, Brandon Black wrote:
> How did they get around not using XmlHttpRequest? Load json objects
> via dynamic <script src="json_url"> tags or something?
Yep, pretty much. This is what the setup code looks like:
var remoteScript = document.createElement('script');
remoteScript.setAttribute('type', 'text/javascript');
remoteScript.setAttribute('src', url);
var hd = document.getElementsByTagName('head')[0];
hd.appendChild(remoteScript);
Once the script element is appended to the document, it loads the src
url. One of the parameters in the url is the name of a "callback"
function that will handle the returned data. You can treat the returned
data as a serialized Javascript object. The JSON.pm module can
parse/create this serialization to/from Perl hashes or arrays.
Here's an simple CGI that echoes any data passed to it as a JSON
request (notice how it sets up the callback to be executed when it
returns to the browser):
use CGI;
my $q = new CGI;
my $hdr = "Content-type:text/javascript\n\n";
my $callback = $q->param('callback');
print $hdr.$callback.'({content: \''.$q->param( 'json' ).'\'});';
More info on JSON at:
http://www.json.org
Don
More information about the Catalyst
mailing list