Design a system that models the way the client browser maintains the aforementioned state. The
system must allow the user to enter a new URL into the system and either go back to a URL loaded
previous to the current URL or go forward to a URL loaded after the current URL. The storage
mechanism used by the browser must include two stacks (one backward and one forward) both of
which support the following behaviour:
? LIFO
? Pop item from stack
? Push item onto stack
? Empty a stack
Generally speaking, the backward stack stores items of previously visited URLs and the forward
stack stores items moved from the backward stack to the forward stack.
Specific requirements:
The system must allow the user to interact in three ways: enter a new URL, recover URLs from the
backward stack; and recover URLs from the forward stack. The actions of the user should produce
the following results:
? Entering URL (via an address bar)
o Push current document onto backward stack
o Empty forward stack
? Recover URL from backward stack
o Push current document onto forward stack
o Pop backward stack
o Load popped URL as current document
? Load URL from forward stack
o Push current document onto back stack
o Pop forward stack
o Load popped URL as current document
? Additional Rules
o The system is initialised with a Home page
o A new Window has empty stacks
o Popping an Empty Stack is non-fatal
Implementation
Implement a client interface to support the requirements and demonstrate the principles in full. The
best approach to take in order to solve the problem is to use an event based style of programming.
Use appropriate form components to represent the components of the browser and a series of
JavaScript functions to model the behaviour of the browser. The design must simulate the
behaviour of the web client, but not duplicate its performance. Do not, therefore, write code which
calls a web page via a URL and inserts the page into part of the loaded document.
Additional Requirements
Explore regular expressions implementations should
support a full URL string and are able to extract the relevant parts and store/display them
appropriately.
You should also explore stacks in more detail,
implementations must support the data structures made from objects (nodes and links) in the
form of linked lists. These structures do not allow non-sequential access to data.
Thank you for posting an interesting Job.
You have given all the specification which could be easily turned into code.
I like to work on this job.
Thanks again.