XML-файл находится на сервере, но он
можно было бы разобрать с помощью jQuery?
Я мог бы использовать AJAX и разобрать весь
XML-файл, но это победит
бесконечная прокрутка / ленивая загрузка?
Если вы отправите свой XML клиенту, это будет , что приведет к тому, что браузер проанализирует его и создаст DOM. В зависимости от его размера (несколько килобайт? Мегабайт?) Это может быть быстрым или может занять некоторое время. Отправка в браузер всех if, по умолчанию, также увеличивает пропускную способность и да, каким-то образом побеждает цель отложенной загрузки.
Бесконечная прокрутка, однако, является парадигмой пользовательского интерфейса, и поэтому вы можете реализовать ее, даже если вы всегда отправляете весь XML-файл в браузер. Опять же, это зависит от того, чего вы хотите достичь - сохранить пропускную способность или просто создавать контент «на лету».
Предположим, вы оставили файл на сервере, потому что он очень большой:
- Пусть сервер загрузит его в многопоточный (!) DOM-объект. Не уничтожайте объект во время жизни приложения, используйте его повторно для каждого запроса, сохраняя его в приложении (или сеансе). Фактически это создает «базу данных».
- Создание прокси-страницы, которая обращается к XML и возвращает его часть в браузер. Вы можете использовать XPath для извлечения запрошенных битов из объекта XML DOM.
- Используйте ваш любимый плагин jQuery с бесконечной прокруткой и настройте страницу прокси для принятия параметров запроса.
Гипотетический запрос от плагина бесконечной прокрутки может выглядеть как
http://server.name/path/data.aspx?start=516&count=10
И ваш data.aspx будет использовать запрос XPath для извлечения 10 элементов XML из 516-го элемента в:
/root/data[position() >= 516 and position() < 516 + 10]
Затем вы либо сконструируете HTML из этого, либо отправите его в виде необработанного XML и оцените его с помощью jQuery на клиенте.
Вероятно, существуют специализированные фреймворки, которые делают все это, но если бы я внедрил такую систему, вышеизложенное примерно то, что я бы сделал.