Highlights
Those are just some key points of the project (konservar.com) I'd like to share. They are in no particular order or not necessarily documented well and the list not completed.
- Entire site is based on AJAX calls. Not a single link directs to another page. When a STATIC page needs to be called, it is requested and the response is placed in the current HTML view.
- When a STATIC page needs to be called AGAIN, it is NOT requested but the previous request is shown.
- When a DYNAMIC page needs to be called, just the necessary part is requested from server.
- There are other requests like, gathering lists for input fields to be used for auto-complete feature. They are not loaded dynamically according to the key presses but they are decided to loaded with a strategy like:
- Since the list of items available for auto-complete are not huge (think about artists, there are like 300-400 of them and only about 40-50 are popular enough to mention at the auto-complete list) the lists are preferred to be populated when the input field is first focused. And then auto-complete feature acts instantly whenever a key pressed without need to make a call to the server.
- There are other AJAX background checks like controlling availability of usernames when a user fills out a sign up form or controlling existence of an artist when a user wants to add an artist.
- Javascript files are not all loaded in the beginning. Certain scripts for certain pages are loaded whenever the page is loaded.
- Some images which are not visible when the page first loads are not loaded in the beginning. They are loaded after the website loaded. So they don’t cause any more transfer traffic. But they are ready to be visible soon, since they are loaded as soon as the main content is loaded.
- All Javascript files are compressed with YUI compressor.
- All CSS files are compressed with CSSOptimiser.com
- Mootools framework is used wisely, and not necessary modules are not included in the script file in order to have less sized scripts.
- The scripts are wrote are written also wisely and tried to achieve with less code in order to have smaller sized scripts.
- Forms are checked at the client side first in order to make clients wait less in case of an error. Plus forms are submitted via AJAX and in case of an error, just the error is reported and the whole form does not goes through the network.
- Forms are never requested from a server twice. They are available to use multiple times by resetting them at the client side at each time.
- Uploading images were tricky. They are handled again without making a visible HTTP request. Whenever a file upload form is filled, the image starts to upload immediately which saves time before submitting the whole form. If an error occurs, it is even reported before submitting the form itself.
- All searches can be saved as a RSS feed. So matching concerts can be followed by any RSS client.
- All searches can also be saved as a “concert alarm” which enables user to be informed by email if a new matching concert occurs.
- All concerts also can be reminded to user by email if it prefers. To do that user only needs check a checkbox, which does not make a visible HTTP request.
- It is possible to add repetitious concerts. For example if a concert is repeated at each Friday or as complicated as twice a week in every two weeks. They are available to search accordingly. To sum, if I search for concerts this week, I’ll see the one going to happen this Friday, if I search for concerts next week, I’ll see the concert going to happen next Friday.
- It is possible to search concerts of certain artists, places, price, genre, city all together. Moreover it is possible to search concerts with keywords such as: Today, This Evening, This Night, Tomorrow, Next Week, Next Weekend, This Month, Next Saturday, Mondays, Wednesdays, Weekends, Weekdays…
- Whenever a search is made, the results are sorted according to some specifications.
- If the user is not a registered user, the location of the user is determined and the concerts near him is listed primarily
- This feature is also customizable by registered users. They are allowed to create a rule for listing of search results. They are allowed to choose preferred cities, areas, artists, genres.
- Every user can add concerts information, artist information, place information.
- Major websites are crawled automatically and new concerts are added to the system.
Last edited by Celal Barış Özdemir on November 1, 2008
contact: celalo@celalo.com