Ajax, просто и практично, ничего лишнего. Контент может быть любой: статичный, динамичный, текст, картинки, флэш, видео, аудио. Может послужить основой небольшого сайта.
Пример использования:
Между <head></head>
:
<script> function showContent(link) { var cont = document.getElementById('content'); var loading = document.getElementById('loading'); cont.innerHTML = loading.innerHTML; var http = createRequestObject(); if( http ) { http.open('get', link); http.onreadystatechange = function () { if(http.readyState == 4) { cont.innerHTML = http.responseText; } } http.send(null); } else { document.location = link; } } // ajax объект function createRequestObject() { try { return new XMLHttpRequest() } catch(e) { try { return new ActiveXObject('Msxml2.XMLHTTP') } catch(e) { try { return new ActiveXObject('Microsoft.XMLHTTP') } catch(e) { return null; } } } } </script>
Между <body></body>
:
<a href="#" onClick="showContent('page1.html')">Страница 1</a>
<a href="#" onClick="showContent('page2.html')">Страница 2</a>
<!--//-->
<div id="content">
<!-- CONTENT -->
</div>
<!--//-->
<div id="loading" style="display: none">
Идет загрузка...
</div>
<script> showContent('page1.html') // страница по умолчанию </script>
Комментарии:
coder hol es#
Не совсем понятно – в примере страница и остается на месте, до подгрузки другой.
Дуня#
Здравствуйте, подскажите пожалуйста в чем может быть проблема. 1) Пример на вашем сайте (открытом в Хроме) работает. 2) Скачала исходник, в Хроме не происходит ничего (замены), а в эксплоере все работает как надо. Спасибо.
coder hol es#
Здравствуйте! Вероятно, кэширование в хроме у Вас. Попробуйте отключить в настройках.
Дуня#
Спасибо, но к сожалению это не помогло(( Сделала финт конем и загружаю через локальный сервер, так и в Хроме отображается, но это не выход. Прочитала, что проблема в событии onClick, а как от этого уйти, я не знаю.
coder hol es#
Пожалуйста – но стандартные события во всех браузерах обрабатываются без проблем – возможно, вопрос в другом.