Activate your free membership today | Log-in

Saturday, July 30th, 2005

Deep Linking Continued: Backbase Article

Category: Articles

We’ve linked to Backbase before; those guys have some awesome Ajax demos. One of brains behind the site, Jeremy Hartley, has recently written an article on the subject of “Deep Linking”; or, in other words, how to get spiders to properly index an Ajax page.

The article identifies three different strategies:

Backbase has identified the following strategies for getting a SPI indexed by search engines:

  • Lightweight Indexing: no structurally changes are made to your site; existing tags such as meta, title and h1 are leveraged.
  • Extra Link Strategy: extra links are placed on the site, which search bots can follow and thereby index the whole site.
  • Secondary Site Strategy: a secondary site is created, which is fully accessible to the search engine.

and goes into some detail on how to implement them. Interesting… though ironically, I couldn’t find a way to link directly to the article in question, so you’ll have to chose it manually from the “Technical Articles” page (though I can give you a direct link to the PDF version).

Posted by Ben Galbraith at 10:05 am
7 Comments

+++--
3.2 rating from 15 votes

Elegant ASP.NET Library for Ajax

Category: .NET

Fexis Vargas pointed us to Jason Diamond, a DevelopMentor instructor, who has created his own Ajax library for making callbacks to the code behind an ASP page. It started out as an “intellectual exercise”, but he did such a good job, its turning into an open source project, whether he likes it or not :-).

Using his library, developers can write callback methods into the class like this:

public class WebForm1 : Page {
    void Page_Load() {
        Ajax.Manager.Register(this);
    }
	
    [Ajax.Method] double Add(double a, double b) {
        return a + b;
    }
}

and then from the ASP template reference the callback in this manner:

<input id="a" /> + <input id="b" /> = <input id="c" /><br />
<input type="button" value="Add"
    onclick="document.getElementById('c').value =
    ASP.WebForm1_aspx.Add(document.getElementById('a').value,
    document.getElementById('b').value);" />

Pretty slick.

Posted by Ben Galbraith at 9:43 am
1 Comment

++---
2.9 rating from 9 votes

Thursday, July 28th, 2005

Start.com: Ajaxian Portal

Category: Showcase, Portal

People were excited to see what Google would come up with, when they showed their personalized search page.

Microsoft has a sidekick project: Start.com, which looks similar to the Google portal.

There is a lot of Ajax going on there, from having portlet which have their own little lifecycle, dynamically being able to change the layout, and more.

A few quirks are around too, such as right-clicking in areas, and it looks like you can drag and drop in places that you can’t…. and it takes you a bit to grok their usability… but hey this is beta!

Click on the left top logo and poke around.

start.jpg

Posted by Dion Almaer at 5:31 pm
4 Comments

+++--
3.6 rating from 5 votes

Ajax Pages: Scripting Engine for JavaScript

Category: Library, Google

Ajax Pages is a scripting template engine that enables rapid development of Ajax Web-based Applications, just like GMail, Google Maps, A9 and Backpack, but without having to manipulate complicated Document Object Models to make things dynamic.

If you check out the 5 minute tutorial, you will see that you create .ajp files which have JSP/ASP/PHP like functionality in them.

Examples

NOTE: TrimPath has JavaScript Templates also.

Posted by Dion Almaer at 10:33 am
1 Comment

++++-
4 rating from 3 votes

Wednesday, July 27th, 2005

Because We’re Not Yet Bored of Google Maps Stuff…

Category: Library, Mapping

Brennan Stehling has created a simple, cross-browser abstraction on top of the Google Maps API called GPlotter that lets you define your map markers in an XML file and have them plotted at run-time on a Google Maps window. Neat.

Posted by Ben Galbraith at 11:18 pm
2 Comments

++++-
4.8 rating from 5 votes

Migrate apps from Internet Explorer to Mozilla

Category: Articles, RichTextWidget

Doron Rosenberg has written an interesting article on How to make Internet Explorer-specific Web applications work in Mozilla-based browsers.

He dives into general cross browser tips first, such as the usual suspects (document.all vs. document.layer vs. document.getElementById).

Doron then delves into other differences such as:

  • HTML Entities
  • Dreaded DOM
  • JavaScript differences
  • CSS differences
  • Quirks versus standards mode
  • Event differences
  • Rich text editing
  • XML differences
  • XSLT differences

A nice intro article that is broad…

Posted by Dion Almaer at 5:45 pm
1 Comment

++++-
4.1 rating from 10 votes

Ajax Deep Linking

Category: Editorial

Jon Udell has spoken about MSN Virtual Earth, Google Maps, and AJAX deep linking.

We talked about some of these points in an earlier editorial piece:

Making sure that crawlers like Google can grok your Ajaxian apps.

Neither Google Maps nor MSN Virtual Earth records the state of a particular map view on the browser’s URL-line. Google Maps hides all the parameters. MSN Virtual Earth presents only a GUID whose purpose I don’t yet understand, but which doesn’t record the map’s state. In both cases, the stateful URL is found elsewhere than on the URL-line. Google Maps presents it directly, with a link icon and a Link to this page label. MSN Virtual Earth presents it indirectly — clicking Permalink leads to a popup window containing the stateful URL.

The first installment of the Macromedia developer relations podcast has an excellent discussion of these emerging strategies (excerpt here).

The conclusion is that while users still expect URLs to record state, AJAX applications that partially refresh pages will instead need to place the stateful URL somewhere within the page, at a location — and using a style — that will become well-known conventions.

Posted by Dion Almaer at 5:22 pm
8 Comments

++++-
4.7 rating from 3 votes

Ajax Shopping Cart: Progressive Enhancement

Category: Showcase, Accessibility

Over at Adactio they are trying to practice what they preach.

They have released an Ajaxian Shopping Cart which uses progressive enhancement.

Basically, fancy words to say that it still works if you aren’t able to do the JavaScript wonder, and doesn’t make screen readers cry (etc etc).

It’s also an example of the kind of progressive enhancement I’ve been banging on about. The functionality was already in place using old-fashioned form submissions. I just used JavaScript to intercept the default action and update just part of the page instead. I did the same thing on the separate shopping basket page.

It’s working pretty nicely but it’s not without its problems, namely accessibility issues. When a portion of the page is updated, there’s nothing to indicate that to a screen reader. I have the same problem with Adactio Elsewhere.

Now, this is where Derek’s modest proposal comes into play. Because the functionality has been added in such a way as to guarantee that it will degrade gracefully, then encouraging users of screen readers to actually disable scripting is not the same as giving them a reduced experience… quite the opposite in fact.

Posted by Dion Almaer at 11:38 am
3 Comments

++++-
4 rating from 63 votes

Tuesday, July 26th, 2005

JavaScript Archive Network: The CPAN for JS

Category: Editorial, Perl

One of the great gems of Perl is CPAN. Rael noticed that some Perl hackers are jumping into some JavaScript code, and built JSAN, a place to find comprehensive information on JavaScript libraries.

As Rael says…

The most interesting find in the archive thus far has to be JSAN library itself, allowing scripters to import rather than <script src=\"... other libraries:
	
 // Or in a library.
  try {
      JSAN.use('Some.Library');
  } catch (e) {
      alert(\"Requires JSAN\");
  }

Very cool.

Posted by Dion Almaer at 11:49 am
1 Comment

++++-
4.5 rating from 11 votes

MochiKit JavaScript Library

Category: Library

Some pythonistas set their sites on “making JavaScript suck less” as they put it. They created the JavaScript library MochiKit.

MochiKit consists of:

  • Async - manage asynchronous tasks
  • Base - functional programming and useful comparisons
  • DOM - painless DOM manipulation API
  • DateTime - “what time is it anyway?”
  • Format - string formatting goes here
  • Iter - itertools for JavaScript; iteration made HARD, and then easy
  • Logging - we’re all tired of alert()
  • Visual - visual effects and colors

View a Sortable Table Example

MochiBot is the kit in action

Posted by Dion Almaer at 11:38 am
3 Comments

+++++
5 rating from 1 votes

HTML Form Element: Radio Select - Combining Radio Button and Select items

Category: Examples

HTML came out with nice form elements such as radio buttons, select boxes etc… but it also missed a few. I knew that I wanted a drop down list that also let me just type in something as “other”. Now we kinda get that with the LiveSearch Ajaxian components.

Lucas Jellema has taken another stab at explaining how to combine the radio button with an “other” select box as a simple component.

There may be some use cases for building the list via Ajax… but only few cases if any.

radio_select2.jpg

Posted by Dion Almaer at 9:57 am
3 Comments

+++--
3.4 rating from 46 votes

Prototype based LiveGrid

Category: Library, Prototype

Alley fell in love with Rico LiveGrid when he saw it and wanted to implement it on his site. As he started on this task he items in which he wanted to change, so he has created a new prototype version:

  • No support for the mousewheel
  • Your html-output needs to be serialized (ie. use <a> for <a>)
  • I don’t want the page itself to define the item height by using empty rows, I want it to calculate the height as soon as the first items load
  • Very strict html required (it must be a table with tr’s)
  • The use of Rico.AjaxEngine: ok, so it’s a cool script and everything. But
    imho it’s kind of outdated and bloated (all respects though!). Prototype is being build further, the effects part of prototype has already been seperated from the core and is now maintained at script.aculo.us
    Prototype’s Ajax.updater does just as good a job as the Rico.AjaxEngine, etc.

View a live example

LiveGrid

Download

Posted by Dion Almaer at 9:36 am
6 Comments

+++--
3.9 rating from 8 votes

Monday, July 25th, 2005

Konfabulator 2.1: Ajax additions

Category: Utility

konfabulator.jpg

Konfabulator has been purchased by Yahoo!, and the platform is to be known as Yahoo! Widgets.

What is Konfabulator?

Konfabulator is a JavaScript runtime engine for Windows and Mac OS X that lets you run little files called Widgets that can do pretty much whatever you want them to. Widgets can be alarm clocks, calculators, can tell you your WiFi signal strength, will fetch the latest stock quotes for your preferred symbols, and even give your current local weather.

Version 2.1 adds Ajax support a la:

  • Cookies are disabled. Prior versions of Konfabulator had
    automatic cookie handling on Windows. This has been turned off for
    security reasons. To continue to allow Widget authors to use cookies,
    two functions have been added to URL: setRequestHeader and
    getResponseHeaders.
  • Asynchronous URL fetching. It is now possible to fetch URL
    data off the web. You can use a new fetchAsync() call which will return
    immediately and allow your Widget to continue to do other things while
    the request is sent. When the response arrives, a function you specify
    is called with the result. You can also cancel a request that is
    running by calling URL.cancel(). The URL.result property has been added
    to retrieve the data once the request is received.
  • Multipart POST support. You can now add files to a POST request using the new URL.addPostFiles function.
  • URL.clear(). You can clear a URL for reuse with this function.

If you purchased Konfabulator 2.0 or higher you will get a refund… and for those who haven’t tried it, grab it for free!

Posted by Dion Almaer at 10:42 am
Comment here

++++-
4.2 rating from 5 votes

New Zealand YAGM

Category: Showcase, Mapping

We have YAGM (Yet Another Google Maps). This time around the mapping area that is catered for is the Kiwis.

If you move around the map faster than it can draw you oan even get peaks at the Loading… screen again!

New Zealand Guide

nz-maps.jpg

Update: You have also probably seen that Microsoft has announced MSN VirtualEarth which compares to Google Maps! (with an interesting zoom, and cool “Locate Me” function) and Google Maps itself has added a new Hybrid mode.

Posted by Dion Almaer at 9:28 am
4 Comments

++++-
4 rating from 4 votes

Ajax going mainstream in The Guardian

Category: Editorial

The Guardian is a great UK newspaper, and it was interesting to see them write a dedicated report on Ajax, what it is, and the state of the onion.

Ajax is set to dramatically change the way we work with web applications. Even without a fancy interface everyone can see the advantages: no more back button and no more “server busy messages”.

Old dog learns new tricks: Ajax is the hottest web technology around, but it’s not as new as you think, discovers Simon Bisson.

Update: eWeek also just published Ajax Tools Get Green Light (written by Darryl Taft, one of my favourite tech reporters).

Posted by Dion Almaer at 9:10 am
1 Comment

++++-
4.5 rating from 2 votes

Friday, July 22nd, 2005

Ajaxian Phone Book

Category: Showcase

Pablo Impallari has created an Ajaxian Phonebook demo that uses XHConn as its Ajax framework.

The phone book allows you to easily add and search the phone book within the same application.

ajax-phonebook.jpg

Posted by Dion Almaer at 2:24 am
7 Comments

+++++
5 rating from 6 votes

Next Page »