Take the 2-minute tour ×
Webmasters Stack Exchange is a question and answer site for pro webmasters. It's 100% free, no registration required.

If I want to have a slide effect between pages. You click a link, it is loaded off to the side and then slides in (pushing the old page off the other side). I can imagine using jQuery to do the PHP and the effects... but how do I do something like this that gracefully degrades for users without Javascript, including bots?

Possibly more problematic: what if I wanted to have a sort of mural background across the site, perhaps with a parallax scrolling effect, and sliding to other pages reveals more of the, possibly giant image?

Again, I can imagine how to do this with lots of fancy jQuery and PHP but it would heavily rely on those. How can I gracefully degrade in a situation like that?

Any pointers, articles or books would be greatly appreciated. I keep trying to search for answers but I just get a lot of "theory"-based, unhelpful blogs.

share|improve this question
add comment

2 Answers

If you want your AJAX website be friendly to search bots then you will have to make sure that the fragment identifier in the URL changes every time a visitor clicks something to have a content reloaded and, and that identifier starts the exclamation mark to communicate to the bots that your website follows a specific convention. That convention means that the actual content that is displayed by JavaScript using:

http://www.example.com/page#!subpage

is also served by your server when the bot downloads:

http://www.example.com/page?_escaped_fragment_=subpage

This is how the CreateJS website works so when you google for EaselJS you get the link to:

http://www.createjs.com/#!/EaselJS

which is just the same HTML page as for example:

http://www.createjs.com/#!/CreateJS

but with an information to the client-side JavaScript to dynamically display whatever content is identified with the #!/EaselJS fragment identifier.

See Making AJAX Applications Crawlable on Google Developers for more information.

share|improve this answer
add comment

Create the basic form of the main page to let the bot get the information it needs and continue with the dynamic contents.

edit: you made a general question which theoretically don't have a specific answer but actually to help you start-up your project i'm doing something like this:

  1. client requests a page.
  2. server creates dynamically a basic page with the information a bot needs and a skeleton with perl, php, xslt or whatever, then posting the page
  3. client gets the page and loads the scripts and begins to dynamically creates the contents and moreover doing requests to server to get other relevant contents ... like css, other scripts, images ....

edit: to start the dynamic tricks you will use something to make these tricks start-up (probably the first loaded script with the first response from the server), then for users without javascript you have to work more on the basic page and let things work for them (work which has to be done by server side) and if they have javascript your code will start-up and load the tricks.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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