SEO-friendly AJAX

Setti

Новичок
SEO-friendly AJAX

Один из ярких недостатков, который приписывается технологии AJAX - это препятствие поисковым роботам навигации по ссылкам, которые являются интерфейсными элементами между пользователем и AJAX-приложением.
Чаще всего делается приблизительно следующее:

<a href="javascript:getHTML()">getAJAX</a>

или

<a href="#" onclick="getHTML()">getAJAX</a>

Но это не правильно, сами знаете, почему.

Привожу, на мой взгляд, идеальный вариант, который не только не препятствует индексации страниц поисковыми роботами, но и соответствует веб-стандартам, когда крайне рекомендуется полностью разделять JavaScript и HTML составляющие каждого документа.


PHP:
<script>
// Это любая ваша функция, которая изменяет что-то в вашем докумене
function changeP(e) {
	if(!e) var e = window.event;

	$('pi').innerHTML = 'OK!'; // Ваш исполняющий код здесь 
//(например AJAX - запрос и модификация документа). 
//Именно здесь можно менять всё что угодно. 
//Остальное тело функции предотвращает 
//переход по ссылке средствами JS.

	//e.cancelBubble для IE.
	e.cancelBubble = true;
	e.returnValue = false;

	//e.stopPropagation только для Firefox.
	if (e.stopPropagation) {
		e.stopPropagation();
		e.preventDefault();
	}
}

// Регистрируем события для ссылки (применяется Prototype - prototype.conio.net)
Event.observe(window, 'load', regEvents, false);

function regEvents() {
	Event.observe($('b1'), 'click', changeP , false);
}
</script>


<a href="http://www.example.com/" id="b1">Main Page</a>
<p id="pi">...</p>
Вот и всё. Enjoy!
 

dub

Новичок
Setti
Ну и где тут html созданный с помощью Ajax который будет забиратся поисковиком ? ;)
 

Setti

Новичок
dub, он там, куда ведет <a href="http://www.example.com/" id="b1">Main Page</a>
 

WP

^_^
Идея старая, еще давным давно такое делал. Но это делается проще:
<a href="http://www.example.com/" onclick="AJAX(); retun false">Main Page</a>
 

Setti

Новичок
Что "бросьте"? Вы вообще пробовали на работоспособность этот код?
<a href="http://www.example.com/" onclick="AJAX(); retun false">Main Page</a>
 

Setti

Новичок
Всё равно - JS внутри HTML кода уже можно считать плохим тоном и такие методы написания программ постепенно устаревают. Рекомендую ознакомиться с понятием "unobtrusive javascript"
 

Solid

Drosera anglica
Setti
Обзаведитесь нормальным редактором, который бы вам подсвечивал ваши синтаксические ошибки. К примеру есть такая отличная IDE, специально для разработки Ajax приложений, называется Aptana. Установите, посмотрите screencast'ы, попробуйте на вкус...
Правильно. И название ему Behaviour.
 
Сверху