There are many interaction patterns emerging in the budding presence of Ajax. Web applications can now have front-end functionality that is much more complex, such as interacting with the database without a browser refresh. Not refreshing the browser is much more than a code trick that is just done for kicksit allows developers to create extremely complex front-end functionality that interacts with the database and feels like any other application, regardless of whether it is on the desktop or the Web. In this chapter, we are going to cover two interaction patterns I have found much use for. The patterns we will be discussing are creating a pseudo-history and a drag-and-drop interface. Both of these objects will be completely flexible, allowing for extensibility, which I'm sure will provide you with some additional ideas. Let's get started creating a history, and then we will dive into the drag-and-drop interface.