Как правильно подружить jqGrid с данными как из DOM так и из JSON?

Тема в разделе "Как сделать...", создана пользователем Mendel, 18 апр 2011.

  1. Mendel

    Mendel

    Регистр.:
    27 янв 2008
    Сообщения:
    217
    Симпатии:
    64
    Суть вопроса:
    Для юзерагентов без JS (к которым в первую очередь относятся поисковики, но и всяких ОПЕРАмини не так мало - около 10%) - для них правильным является вывод данных постранично, на каждой странице определенное количество записей в таблице + ссылки на следующие страницы, чтобы как минимум проиндексировались.

    Ну а для нормальных пользовательских браузеров хорошо бы что-то вроде jqGrid с подкачкой данных при необходимости динамически, в JSON или XML.

    Если передать jqGrid данные из статической таблицы, то он никогда не узнает, что это только часть данных, и что еще есть сотни страниц которые доступны ему через запросы.

    Если же инициировать его через JSON или XML, то мы будем иметь двойной трафик - скачали таблицу с данными, а потом еще раз те же данные будем качать динамически.... А ведь реально данные дублируются, нужна только одна переменная дополнительно - кол-во записей всего, ну и сообщить ему куда обращаться если пользователь захочет листать страницы или пересортировывать.....

    Куда курить?
     
  2. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    изначально в php нету возможности проверить разрешен ли у клиента JavaScript или нет. Поэтому нужно либо придумывать какие то хитрости, либо проверять юзерагентов.
    Хитрости: выводим пользователю стандартную страницу с первым набором записей, например 20 шт. + постраничную навигацию + кнопочки сортировки. если JS разрешен, то ajax-ом подменить таблицу с записями на ту которая работает с JSON или XML и пусть работает и узнает все прелести JS. Все затраты это 1 лишний SQl запрос и трафик на отображение 20 записей.