5 May 2010

jQuery Address 1.2 - Ajax Crawling, URL building and more

I'm happy to announce the strongest jQuery Address release up to date. In the last few months we put a lot of effort in adding new features and samples as well as incorporating bug fixes and community feedback.

Probably the most important update is the strong integration between the plugin and the Ajax Crawling mechanism promoted by Google. The sample that jQuery Address ships with is unobtrusive as possible and works even better than the Google's own GWT example. We used PHP to showcase all the aspects of this integration but we'll try to add samples for more languages in the near future.

Another huge improvement is the ability to build deep linking values part by part. It should replace any custom string concatenation functions that you have used in the past and simplify the cases where you need to use many different parameters. In order to build such values or queries without the generation of history entries in the browser you may need to use the new autoUpdate mode setting.

Other notable features are the wrap option which will generate a DIV wrapper for your content in order to prevent scroll issues with the hash fragments, the support for hash fragments inside the value and the utilization of the the HTML5 onhashchange event where possible.

Here is a list of all the changes:

  • New queryString, parameter and path setters.
  • New autoUpdate, crawling and wrap options.
  • New generic bind method.
  • New Accordion, Crawling and Form samples.
  • Support for hash fragments as a part of the value.
  • Basic support for forms.
  • Improved onhashchange support.
  • Switched samples to HTML5.
  • Switched to the Closure compiler.
  • JSLint compatibility.
  • Simple test suite.
  • Support for jQuery 1.4.2 and jQuery UI 1.8.

Any comments and opinions are welcome but please use the GitHub issue system for bug reports.

Download jQuery Address 1.2

29 Apr 2009

SWFAddress 2.3

As of today SWFAddress 2.3 is available for download. It's the next stable release of the project and took a little bit more than initially planned. This update offers various fixes and few interesting optimizations requested by users. There are few backwards incompatible changes but they will affect only some exotic cases. The main new feature is the improved support for unicode values. For Firefox 3 on Mac OSX we switched from ExternalInterface to getURL/navigateToURL and had some additional troubles especially with ActionScript 3.

Here is the full list of changes:

  • New public encodeURI/decodeURI methods for AS1 and AS2.
  • New Unicode sample and improved support for unicode values.
  • Improved detection of ExternalInterface and swfaddress.js availability.
  • Improved fix for Firefox 3/Mac OSX.
  • Improved degradation in uncontrolled cross-domain parent frames.
  • The explicit id attribute of swfobject.embedSWF() is now optional.
  • Simplified browser sniffing.
  • Removed internal eval() statements.
  • Removed support for swfaddress.html.
  • SWFAddress.getParameter() no longer returns an empty string if the parameter is not available.
  • The SWFAddress.getTracker() no longer has a default value but the behavior remains the same.
  • Support for hash fragments in the SEO redirection.
  • MOTW is added to all the static samples.

Download SWFAddress 2.3

28 Apr 2009

Introducing jQuery Address

I'm happy to announce our first contribution to the jQuery ecosystem. Our brand new project called jQuery Address brings the deep linking functionality to jQuery and hopefully is going to simplify one of the most common tasks for JavaScript developers. In other words it provides an API for creating direct links to specific Ajax states and enables the Back and Forward buttons of the browser.

jQuery Address is a direct port of the SWFAddress library which has become a standard in the Flash world and has been used on many high profile websites. It supports all the major browsers and degrades flawlessly in a small percent of unsupported versions. This first release ships with 2 samples that showcase the different ways to utilize the plugin (API sample) and how to use with jQuery UI (Tabs sample). The next steps we're planning include documentation, SEO samples and integration with the SWFObject plugin.

The work on the plugin started a few months ago but so far I wasn't able to find the time to release it. It's my first serious work that involves jQuery and I'm open for suggestions, critiques and comments. I had great time learning the library and writing the most expressive code ever. The good thing about the plugin is that it has much smaller file size compared to SWFAddress but it also does not target Flash content at this point.

I hope that our experience in this field will be valuable to many jQuery users. The plugin already contains all the improvements included in the upcoming SWFAddress 2.3 which is we're planning to release tomorrow.

Download jQuery Address 1.0

8 Dec 2008

Deep linking with the Digg API

A sweet new SWFAddress sample that utilizes the Digg API just went live this morning. I wanted to create a simple Ajax based showcase for the project and I almost accomplished the goal. The complexity of the code is a little bit higher than I originally wanted but I hope that most of the people will be able to understand it.

The sample uses a dynamic script tag inclusion in order to access the Digg services in a cross-domain fashion. It lists the popular posts in the Technology section, does paging and shows post details.

Go check it out.

15 Nov 2007

SWFAddress 2.0 part 3 - Ajax and SEO

In the third and last part of the SWFAddress 2.0 presentation series I would like to give an overview of the two major features that this release introduces.

My personal experiments with deep linking actually started with Ajax and later I used the experience to create SWFAddress. Because of this the Ajax support has always been a matter of time and after the 1.1 release it became a standard user request. As you probably know there are many solutions of this type and every major JavaScript library have this functionality available natively or in the form of a plugin. The usage of SWFAddress will only make sense if it's better that the rest and now I'm going to explain why SWFAddress 2.0 really becomes the best offering at the moment.

As it was mentioned in the firts part of this series, SWFAddress is already deployed on many websites. This fact generated a huge amount of feedback and I have never been indifferent to appropriate and possible improvements. When we say that SWFAddress supports Opera 9 or Safari 1.3 we really ensure that it does so. While most of the other scripts are coming up with their serialization formats which are appropriate for specific framework or component state, SWFAddress tries to stick as much as possible with concepts clean URLs, standard query parameters and unobtrusive behavior. Features like custom titles, transparent page view tracking and event listeners are also not that common across similar solutions. And last but certainly not least, there are affordable support and development services which some people find useful.

For some time there is an Ajax sample available on the SWFAddress homepage which wasn't there without a reason. Today I'm happy to announce that we have an indexable unobtrusive Ajax content which can be accessed from Google, Yahoo or MSN. It's written in PHP and uses an innovative SEO mechanism which I'm going to describe below. To finalize the Ajax overview I also want to mention the Coherence sample that showcases how multiple Flash files can be used together with XHR and opens a lot of interesting opportunities.

Last year SWFAddress came up with a deep linking SEO solution that works. It was a little complex, but various people dared to use it and achieved the result they've dreamed about. The approach wasn't perfect, the complex URL rewriting was often causing troubles and worst of all was the fact that it was 'cloaking', a term that makes people paranoid because of the Google guidelines. We never experienced or heard about issues or penalties because of this technique, but overall this was a stopper for lots of the SWFAddress adopters. Companies like BLITZ implemented their own much safer SEO solution on top of SWFAddress, but it still isn't perfect because of the ambiguous deep link anchors generated with JavaScript.

With SWFAddress 2.0 I can offer you a new approach which in my opinion has enormous potential. It's not very simple because it relies on JavaScript redirection which should be non-sneaky, but it works quite well and produces the clean results that we want. The technique works like a progressive enhancement and a site like this can be first developed without any Flash or Ajax code. SWFAddress adds a tricky synchronous XHR on top of all this and ensures that after the redirect the HTML content won't be different. URL rewriting is used again, but this time it's very minimalistic and most of the logic is implemented with a server-side language. SWFAddress 2.0 offers you a choice between PHP, JSP or Rails and even if you don't like the encapsulation of the code, you'll be able to grab the core logic and implement it as you like.

As always we did some real testing using our SEO sample and the technique seems to work quite well.

The release is coming tomorrow. Make sure you won't miss it!



Blog Search

Blog Categories

Blog posts

Recommended sites