Welcome!

Machine Learning Authors: Pat Romanski, Liz McMillan, Carmen Gonzalez, Yeshim Deniz, Zakia Bouachraoui

Related Topics: Machine Learning , Cognitive Computing

Machine Learning : Article

AJAX is Not A "Search Engine Killer" Any More

"Industrious webmasters develop two versions of their websites - one for users and one for search engines"

In "i-Technology Viewpoint" Ashok Sundani wrote that "... the search engine will never run your AJAX. To the search engine, huge areas of your website content are now hidden, never to be spidered, indexed, or found. This really limits the usefulness of AJAX in many applications." Well, that "fact" is, in fact, contends Andrey Sivtsov in this rebuttal, not a fact.

We want both AJAX and search engines to stay alive and happy. BoonEx offers advice on how to do what was considered to be the impossible.

AJAX is a great technology, and most of its so-called "drawbacks" can be worked around. AJAX is extremely popular in web development now, but we hear tons of whining about how search-engine-UNfriendly and unusable (back button/permalinks problem) it is. C'mon, just think a bit - be creative and believe in "can do".

In our new product - Orca Interactive Forum Script, and in our upcoming products - Directory, Wiki and Blog we decided to use AJAX extensively but solve its problems altogether.

Orca is already a success. It is a 100% AJAX forum software, which already has an operational BACK button, permalinks, search-engine friendly structure and bookmarkable pages. Want more? Look for version 1.1 in a couple of weeks with many cool new features, including unique page title tags and Human-Friendly-URLs (modifiable to clone, say phpBB or vBulletin or any other way of URLs structuring). In a few months we plan to make Orca even more friendly and usable than any other conventional forum script.

Orca is an open-source, GPL-licensed, free product. We decided to release it into open waters to make it really popular and widespread. You can see it in action, use it, or participate in development. Orca - Interactive Forum Script.

Now, to save precious search engines from the wildly popular AJAX expansion we're sharing this information to help webmasters develop SE-friendly AJAX apps.

Industrious webmasters develop two versions of their websites - for users and for search engines. We combined both into one. Literally. We use XSL transformation for generating site contents. XSL transformation can be done on the client side (in browser) and/or on the server side (in php). This effectively removes the need to write different code for AJAX and for search engines. The same code provides different functionality for search engines and for users.

For example, if you look at the Orca forum url:

< a onclick="return f.selectForum(5, 0);" href="index.php?action=goto&forum_id=5&start=0" >Orca Installation< /a >
When a user clicks this URL the browser executes onclick event and if return f.selectForum(5, 0) statement returns false the browser will execute onclick code and doesn't follow the link in href attribute. In this case we execute xsl transformation on the client side (good for server performance because xsl transformation is performed on the client machine).

When a search engine "clicks" this URL it sees only the href part of the url and opens a page with a regular URL with the same page content. In this case xsl transformation performs on the server side and this URL outputs a regular html page.

What about that old AJAX enemy - Back button? Simple.

The back button in Orca is based on # symbol after the URL. JavaScript can read and change the value in the URL after the # symbol without a page reload, but a browser stores this URL (with another text after # symbol) in browser history.

The sequence (as in Orca):

  1. User opens a forum via AJAX
  2. JavaScript reloads the target area on the page and stores information about this action in the URL (example: #action=goto&forum_id=5)
  3. Browser stores this URL in history
  4. The user clicks the Back Button
  5. JavaScript sees that the # part of the URL has changed, takes the new text after the # symbol, parses it and calls JavaScript to reload the target area on the page (example: #action=goto&forum_id=3 would open topics in forum with id=3)

PS: Mozilla and IE handle these URLs (with changed text after the # symbol) differently. So JavaScript code for them is different, but the algorithm is the same.

Note that xsl transformation is very strict - you have to write xsl templates very carefully, but at the end of the day you will have perfectly valid HTML code.

Ok, this is a start. We plan to improve these techniques and will use them in Orca and other BoonEx products.

More Stories By Andrey Sivtsov

Andrey Sivtsov is General Director of BoonEx Community Software Experts Company (http://boonex.com). The company is devoted to developing cutting-edge web applications for online communities, using the latest technologies. "We make them advanced, search-engine-friendly and user-friendly," he notes.

Comments (5)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


CloudEXPO Stories
Because Linkerd is a transparent proxy that runs alongside your application, there are no code changes required. It even comes with Prometheus to store the metrics for you and pre-built Grafana dashboards to show exactly what is important for your services - success rate, latency, and throughput. In this session, we'll explain what Linkerd provides for you, demo the installation of Linkerd on Kubernetes and debug a real world problem. We will also dig into what functionality you can build on top of the tools provided by Linkerd such as alerting and autoscaling.
DevOps is a world surrounded by information, starting from a single commit and ending in roll out to production. In this talk, I'll introduce you to the world of Taboola DevOps data collection, to better understand what goes on under the hood. The system we've developed in-house helps us collect and analyse the entire DevOps process from the very first commit all the way to production. It provides us a full clear view with a drill-down toolset that helps keep us away from the dark side. Our KPI's moved from being abstracted ideas to data driven goals, which we can measure and act upon. We're living in a data driven world when all business components are based on our clients action and reaction, why not doing the same thing within our DevOps eco-system?
After years of investments and acquisitions, CloudBlue was created with the goal of building the world's only hyperscale digital platform with an increasingly infinite ecosystem and proven go-to-market services. The result? An unmatched platform that helps customers streamline cloud operations, save time and money, and revolutionize their businesses overnight. Today, the platform operates in more than 45 countries and powers more than 200 of the world's largest cloud marketplaces, managing more than 27 million enterprise cloud subscriptions valued at more than $1 billion in revenue.
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace. His expertise is in automating deployment, management, and problem resolution in these environments, allowing his teams to run large transactional applications with high availability and the speed the consumer demands.
Containerized software is riding a wave of growth, according to latest RightScale survey. At Sematext we see this growth trend via our Docker monitoring adoption and via Sematext Docker Agent popularity on Docker Hub, where it crossed 1M+ pulls line. This rapid rise of containers now makes Docker the top DevOps tool among those included in RightScale survey. Overall Docker adoption surged to 35 percent, while Kubernetes adoption doubled, going from 7% in 2016 to 14% percent.