HTML and CSS Reference
In-Depth Information
The
Index()
action method accepts an optional integer parameter that indicates an image ID. If this
parameter is supplied, an image with that particular ID is displayed; otherwise the first image from the
Images
table is displayed.
The Previous and Next buttons submit the form to the server and display the previous or next slide. In
order to navigate through the browser history, you need to handle the
click
event of the < and > buttons
and call the
back()
and
forward()
methods of the
History
object, respectively. Listing 6-2 shows how this is
done.
Listing 6-2.
Calling the
back()
and
forward()
Methods
$(document).ready(function () {
$("#btnBackward").click(function () {
window.history.back();
});
$("#btnForward").click(function () {
window.history.forward();
});
});
As you can see, the
click
event handler of the
btnBackward
button calls the
History
object's
back()
method, whereas the
click
event handler of the
btnForward
button calls
History
object's
forward()
method.
To see how the
back()
and
forward()
methods work, run the application and navigate through the
slides using the Previous and Next buttons. Then try clicking < and >. The browser address bar reflects the
appropriate slide URL depending on the button clicked. You can also verify the behavior using the
browser's back and forward navigation buttons.
Understanding the History-Tracking Problem
The
History
object discussed in the preceding section essentially tracks the URLs you visit through the
browser address bar, hyperlinks, navigation menus, or code. For example, every time you click the Previous
or Next button in the Slide Show application, the browser address bar reflects a different URL. This is
possible because you submit the entire form to the server. In other words, for every slide, you have a
unique URL. However, there can be situations where such a one-to-one mapping between the content of a
page and its URL can't be maintained. Consider the following cases:
• You're developing a Web Forms based application, and the logic of displaying
different slides is embedded in the server-side
click
event handlers of the Previous
and Next buttons. You're using a single web form to display all the slides. An
Image
control on the page is updated with the new picture whenever the Previous or Next
button is clicked. As a result, all the slides have the same URL. In such a case, there
isn't a one-to-one match between slides and URLs.
• If you use Ajax techniques such as the jQuery
$.Ajax()
method or ASP.NET Ajax
extensions, the complete page isn't submitted to the server. Instead, you make an
Ajax call to the server and retrieve the next or previous slide. In this case, too, there
isn't a unique URL for each slide.
In both cases, the browser history records a single URL for all the slides shown in a page. Because a
single URL represents all the slides, the user can't bookmark a specific slide. A user may bookmark the
page, thinking that a bookmark is being added for a specific slide; but if the bookmark is accessed, it
always shows the first slide because the URL is common to all the slides. To understand this problem more