CS297 Proposal
CS298 Proposal
Total Recall for AJAX Applications - an extension to Firefox
Smita Periyapatna (smita.periyapatna@gmail.com)
Advisor: Dr. Chris Pollett
Committee Members: Dr.Araya and Dr.Stamp
Description:
In AJAX, most of the action takes place inside a single page. When an AJAX
page is loaded, new instance of JavaScript objects are created. When you leave
that page and go to some other page like say Yahoo, the JavaScript objects are
completely wiped out. When you hit the back button, the page actually reloads
completely. All the objects are lost and this can be pain.
First, it is something that not all programmers are aware of, which can lead to
errors, so it is important to know about. Second, users see their state completely
wiped out; when they go back to their AJAX application with the back button, they
see the original state of their program, not the last place they left it. Third, this
can affect performance, since the AJAX application has to re-retrieve everything
from the server rather than use its local state.
My project aims to solve the above-mentioned problems. I propose to build an
extension for Mozilla Firefox browser which extends the functionality of the
browser to save the states of an AJAX page.This will allow users to go back to the last place they left, instead
of going to the original state of their AJAX application. It would also check if some
states were already saved in the history item, if they were, then those states
would not be saved. My extension will allow users to set a time interval at which
they want to save the states of a page.
CS297 Results
1. Created a sample Hello World extension to test the extension functionality.
2. Captured events in a DOM tree and displayed an alert message when the event was captured.
3. Created a Preference system to select between different choices.
4. Cached pages for a single tab browser at different time intervals.
Schedule:
Week 1(26 Aug, 2008 - 1 Sep, 2008) | Prepare 298 proposal |
Week 2-4(2 Sep, 2008 - 15 Sep, 2008) | Fix caching of pages with images |
Week 5-7(16 Sep, 2008 - 6 Oct, 2008) | Implement caching with tabbed browser |
Week 8(7 Oct, 2008 - 13 Oct, 2008) | Cache pages which are implemented using Flash. |
Week 9-11(14 Oct, 2008 - 3 Nov, 2008) | Test the above application and make it more robust. |
Week 12(4 Nov, 2008 - 10 Nov, 2008) | Work on writing the report |
Week 13-15(11 Nov, 2008 - 24 Nov, 2008) | Submit CS298 report. |
Week 16(25 Nov, 2008 - 3 Dec, 2008) | Final Presentation. |
Key Deliverables:
- Software
1. Deliverable_1: In CS297 the browsing of cached pages was successful using micro back/forward controls implemented for this project.But the browsing of pages with images was not supported.In CS298 I will implement the caching and browsing of pages with images.
2. Deliverable_2: In CS297 the caching of pages and browsing of saved pages was done only for single tab browser. In CS298 it would be done for multiple tabbed browser.
3. Deliverable_3: Implementing caching of pages for pages written in Flash.
- Report
Final Report and Presentation.
Innovations and Challenges
- The final application will have four buttons to control
history: start, stop, back, and forward. Users can start and stop
caching pages with the start and stop buttons or browse the saved items
with the back and forward buttons. Keeping the back/forward button
pressed will display the cached pages as a slide show.
- The micro history controls works fine in case of single
tab browser, but in case of multiple tabbed browser caching and
browsing would be difficult.Organizing the data in the cache from all
new windows and keeping track of all the back and forward clicks. Also
we have to keep a tab on the memory being utilised in the cache.
- The challenging part would be in caching pages
implemented using Flash.The implementation will be limited to only scriptable Flash
objects. Events fired to the Flash objects will have to be captured
before it reaches the object.
References:
[2007] Official page of Mozilla. "http://developer.mozilla.org/en/docs/Building_an_Extension"
[2007] Programming Firefox: Building Rich Internet Applications with XUL. Kenneth C. Feldt. O'Reilly. 2007.
[2007] JavaScript and DHTML Cookbook: Danny Goodman. O'Reilly. 2007.
[2007] Official page of Backbase. "http://bdn.backbase.com/topic/documentation"
|