Динамическая загрузка контента с использованием jquery

Главные вкладки

Аватар пользователя solomenikm solomenikm 22 июля 2009 в 21:04

Задача: реализовать загрузку контента на сайте динамически, в простонародии через аякс.
Решение:
1. Как можно выше вставляем этот код:

window.onload = function() {
        if ((location.hostname+location.pathname != location.hostname+'/') && (location.hash.length < 1)) {
        var h ='/#'+ window.location.pathname.replace('/','');
        window.location = h; } 
}

Он нам нужен для того, чтобы можно было копировать и передавать ссылки. Например ссылка вида http://site.com/content/main перенаправит нас (если джаваскрипт включен) на http://site.com#content/main (что нам и требуется), с другой стороны для поисковых систем ссылка http://site.com/content/main попрежнему останется рабочей.

function drupal_ajaxer(menu, content){
        $(menu).attr("href", function() { return '#'+this.href.split(location.hostname+'/')[1]; });
        if (window.location.hash!="#"){
                $(content).load(window.location.hash.split("#")[1]+' '+content);}
        else{
                $(content).load("/ "+content);}
        $(menu).click(function(){
                var h = $(this).attr('href');
                if (h!="#"){
                        $(content).load($(this).attr('href').split("#")[1]+' '+content);}
                else{
                        $(content).load("/ "+content);}
        });
}

Функция грузит нам необходимый контент из ссылок menu в content и меняет ссылки вида http://site.com/content/main на http://site.com#content/main

$(document).ready(function(){
        drupal_ajaxer("a","#content-inner");
});

Для тега "а" меняет все ссылки и после перехода по ним фильтрует полученый запрос от сервера до слоя "#content-inner" и вставляет результат опять же в "#content-inner".

Этот пример не рассматривает вопрос оптимизации запроса к серверу и графического оформления загрузки. НЕ стоит использовать на странице администрации! Запрос выполняется тупо на страницу сайта, а ответ фильтруется, но скорость работы при этом возрастает, да и выглядит симпатичней. Скрипт настроен для работы с чистыми ссылками.

Сапасибо за внимание. Замечанием и вопросам буду очень рад.
P.S. Буду просто счастлив, если кто-нибудь напишет скрип php к которому можно бы было отправлять запрос этим скриптом.

Комментарии

Аватар пользователя skorpio skorpio 23 июля 2009 в 17:41

хотелось бы тоже узнать как реализовать загрузку статьи без перезагрузки страницы
если можно опишите подробнее что и как нужно настроить
P.S. стили работают в UBUNTE

Аватар пользователя PVasili PVasili 23 июля 2009 в 18:00

"skorpio" wrote:
хотелось бы тоже узнать как реализовать загрузку статьи без перезагрузки страницы
- был модуль с бесконечным треккером Smile

Аватар пользователя skorpio skorpio 23 июля 2009 в 18:19

PVasili интересно, а вот какой. с комментариями разобрался , хотя там и разбираться
не с чем пара модулей + тимизации на 5 минут , а вот с контентом вопрос пока открыт.
буду благодарен за указанный путь куда копать.
или лучше через VIEWS сделать

Аватар пользователя FORTIS FORTIS 31 августа 2010 в 21:42

"solomenikm" wrote:
Он нам нужен для того, чтобы можно было копировать и передавать ссылки. Например ссылка вида http://site.com/content/main перенаправит нас (если джаваскрипт включен) на http://site.com#content/main (что нам и требуется)

а зачем менять ссылки если можно через bind навесить обработчик click в котором делать load и возвращать false?