I am designing a user management system for an intranet. It takes after most traditional interfaces for managing and editing user details.

The system is designed with fall back so that users without javascript will get the standard page reload, while users with javascript will get smooth ajax loading.

The interface looks like so:


download bmml source – Wireframes created with Balsamiq Mockups

Normally, if a user without javascript searches, then he gets redirected to http://site.com/users/search/some-search-term/1

Clicking next page would take him to http://site.com/users/search/some-search-term/2 and so on.

The problem I have now is that I would like to implement type ahead for javascript enabled users. As the user types into the search box, the table of users in the system should start filtering.

If the results require pagination after searching, then pagination should still work. The link would be http://site.com/users/search/some-search-term/2 and a history entry would be created because I think most users would expect an entry in their browser's history when clicking a link.

My question is: When do I create a history entry to the search history? For example, someone might start typing jo, then john. At what point do I create a history entry for this search?

Are there any other ways to do this so that I could perhaps even avoid this issue?

2 Answers 2


Do save history when someone changes search pages; clicking back from Page 2 should go back to Page 1.

Don't save history on autocomplete searches; every single letter might be a search!

History is supposed to be a record of pages, where you went. It's not a history of what I typed. Retyping a search term is easy, clicking "back" to iterate through every letter you typed is not!

Whenever you have AJAX style "pages" with history, make sure each hit of the back button makes sense; is this a new "page" to the user? If you hit the Back button in a web browser would you expect this behavior? If you start remembering everything as history, a user might end up having to click back 500 times to revert every single change they made on one "page"! Suddenly the back button is useless.

Don't break the back button!


Google doesn't do it; if you are on their search page, and change the search, you do not get a new history entry. When someone very big and very focused on UI doesn't do something, I pay attention... they probably know better than me.

I can point out that Google explicitly turns off interactive search as soon as you go to page two, because the expectations of the user are indeterminate; should the change affect the first page too? how does that affect the terms that jumped from page 2 to page 1, while you're looking at page 2?

So interactive search/filtering should be disabled after you leave the first page.

As far as creating a history entry, if I ignored the fact Google doesn't, I would create it as soon as your focus leaves the search box or 5 seconds pass. This interaction is very similar to how marking email 'read' works in Thunderbird. If you just go right past an email (keep typing a search) then it does not mark it read (add it to the history). But if you pause for a while then the email gets marked read.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.