Что тут сложного то?
1. Грузим центральную область, и вслед за ней - круговой периметр в 3 экрана видимой зоны (тот, что за "кадром" видимой области).
2. По span-у - динамически догружаем тайлы в направлении вектора смещения с постепенным заполнением зоны из линии тайлов (где были и куда сместились) в круг.
3. Каждый тайл/блок - грузим в асинхронной очереди.
4. Приоритет - первым грузим ближайший к видимой зоне по направлению вектора смещения (при span-скролле) и, далее, по периметру конечной точки, и, затем, круговое заполенение от центра.