browser: clearwind.ca server: some.other.ca
The same origin policy prevents document or script loaded from one origin from getting
or setting properties of a document from a different origin.
-- From http://www.mozilla.org/projects/security/components/same-origin.html
JQuery for json-time
var url = \"http://json-time.appspot.com/timezones.json?\"
$.getJSON(url + \"callback=?\",
function (json) {
...
});
JSON time demo
Complete JSON time demo
$(document).ready(function() {
var url = \"http://json-time.appspot.com\";
function showTime(data) {
$.getJSON(url + \"/time.json?tz=\" + $(\"#zones\").val() + '&callback=?',
function (json){
$(\"#zones-msg\").text('The time is now ' + json[\"datetime\"] + '.');
});
};
$.getJSON(url + \"/timezones.json?callback=?\",
function (json) {
var zones = $(\"#zones\");
for (var k = 0; k < json.length; k++) {
zones.append(\"<option>\" + json[k] + \"</option>\");
};
zones.bind(\"change\", showTime)
});
});
Cross Domain
JQuery
App Engine
Easiest deployment
Best scalability
Minimal effort
Not straight Python
Has it's limitations and quirks
And it's free
Example Mashup
The coolest technology of 2006
Google Maps
The most hyped technology of 2009
Twitter
Twitter messages with a map
by hash tag eg: #owv2009
Proxy?
Because twitter doesn't have JSON export
Other services like Google RSS or Yahoo YQL have
problems
But checkout: http://developer.yahoo.com/yql/
and http://code.google.com/apis/ajaxfeeds/
No Model
Quite common for
App Engine
Just feedparser
http://www.feedparser.org/
class JSONHandler(webapp.RequestHandler):
def get(self):
url = self.request.get(\"url\")
data = feedparser.parse(url)
if self.request.get(\"callback\"):
data = \"%s(%s)\" % (self.request.get(\"callback\"), data)
self.response.out.write(data)
JSON
twitter.json (smaller twitter version for a search term)
atom.json (a whole atom file for a url)
No Model
In fact, completely static HTML
(with JS, no server side code)
Some Javascript
function move() {
var bounds = map.getBounds();
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var url = map_details.tags_domain + '/bounds.json?nelat=';
url += ne.lat() + '&nelon=' + ne.lng();
url += '&swlon=' + sw.lng() + '&swlat=' + sw.lat() + '&callback=?'
if (map_details.last_url != url) {
map_details.last_url = url
$.getJSON(url,
function(json) {
if (json) {
for (var k = 0; k < json.length; k++) {
...
Some more Javascript
function twitter() {
var tag = null;
for (var obj in tags) {
var url = map_details.atom_domain + '/twitter.json?tag=' + obj +
'&callback=?'
$.getJSON(url,
function(json) {
var tweet = null;
for (var k = 0; k < json.length; k++) {
....
0 comments
Post a comment