Using a Location Proxy for URL Bindings in the Sammy Javascript Framework
25 May
As I hinted in my previous post, the Sammy javascript framework is a great organization layer ontop of javascript heavy apps because it brings web developers back to familiar ground – the URL. But, there are occasions where we don’t want the actual URL in the browser to change, including the hash parameters.
Why? Maybe we don’t want Back-button accessibility, or as in my case, we are running our scripts on a 3rd party domain and we want to minimize our impact.
So, how can we maintain the organization that URLs provide, but prevent the actual URL from changing? Use a proxy!
You can find my fork of the Sammy project here.
Usage
var app = $.sammy(function(){ with(this) {
// denote that we will be using a location proxy
use_location_proxy = true;
get('#/home', function() {
//... do something
});
//...
});
And the corresponding link would look like:
<a onclick="app.setLocation('#/home'); return false;" href="#/home">Home</a>
Even though we are preventing the URL from changing in the browser (with return false), the Sammy framework still activates the ‘#/home’ routing.
Some things to note: if you define use_location_proxy in your application, it will no longer listen to the browser URL. Future versions may have more flexibility with this.

Recent Comments