Во-первых, вы должны взглянуть на модель подкачки (Ваша ссылка была сжата выше, поэтому я просто выкладываю ее здесь.
Когда вы используете пейджинг без <execute></execute>
указанный блок будет использоваться в строке запроса с URL-адресом, указанным в * 1006. * Просто поиграйте с Примером поиска фотографий Flickr , вам нужно запустить его в консоли с включенной диагностикой, чтобы посмотретьпри изменениях в URL-адресе. Атрибут id
используется для вставки числа в запрос. Просто чтобы проиллюстрировать здесь, часть подкачки выглядит следующим образом:
<paging model="page">
<start id="page" default="0" />
<pagesize id="per_page" max="250" />
<total default="10" />
</paging>
Например, запрос
select * from flickr.photos.search(10,20) where has_geo="true"`
Используемый URL был http://api.flickr.com/services/rest/?method=flickr.photos.search&has_geo=true&page=1&per_page=30
. Как вы можете видеть, на самом деле он занял page=1
, но запросил per_page=30
и внутренне усек первые 10 результатов, так что вы получите смещение 10 и всегоиз 20. Результаты YQL сделали это потому, что выбрана модель page
.
Другой пример, если вы попытаетесь это сделать:
select * from flickr.photos.search(249,2) where has_geo="true"
YQL будет получать оба ...&page=1&per_page=250
и ...&page=2&per_page=250
(I 'мы сократили URL-адреса для иллюстрации) , как и ожидалось, чтобы получить результаты.
Переменные подкачки также определены в глобальной области видимости, если вы используете JavaScript в разделе <execute></execute>
.Вы можете видеть, что это используется в таблице OpenData flickr.photos.astro .
Я думаю, это должно ответить на ваш вопрос, поскольку я вижу, что на GitHub , вы работали над тем, как извлечь страницы с помощью XPath.
В вашем случае у вас должно быть что-то вроде:
<paging model="page">
<start id="page" default="1" />
<pagesize id="per_page" max="10" />
<total default="10" />
</paging>
per_page
будет в вашем внутреннем запросе, но этоиспользуется для YQL для определения необходимых запросов.Тогда в вашем JavaScript, вероятно, можно сделать что-то вроде:
y.query(
"select * from html where url=@url",
{url: "http://jetpackgallery.mozillalabs.com/jetpacks?page=" + page}
);