Nodejs: Как разбить страницу на большой массив с нескольких просканированных сайтов? - PullRequest
0 голосов
/ 30 сентября 2019

Я создаю газетное приложение, похожее на мобильное приложение Flipboard! используя nodejs nestjs framework.

Итак, я забираюсь на несколько веб-сайтов, чтобы получить данные, и в итоге у меня есть массив из более чем 100 элементов только для первой страницы, собранной с каждого веб-сайта!

Поэтому мой вопрос заключается в том, как разбить на страницы этот массив и в конце (конец массива) отправить запрос на мой сканер для получения страницы 2 с этих веб-сайтов (например, еще 100 элементов)

То, что я пытался сделать, но все же я не почувствовал никаких улучшений во времени отклика!

async getAllArticles(page: number, size: number) {

    const skip = size * (page - 1);

    // First crawler ( has an optional page pram default is page 1 )
    const unlimitTech = await this.getArticlesFromUnlimitTech();

    // Second crawler ( has an optional page pram default is page 1 )
    const tectWd = await this.getArticlesFromTechWD();

    // Merge them and sorted by date ( DESC )
    const all = unlimitTech.concat(tectWd).sort(function (a, b) {
        // Turn your strings into dates, and then subtract them
        // to get a value that is either negative, positive, or zero.
        return new Date(b.date).getTime() - new Date(a.date).getTime()
    })
    .slice(skip, size * page); // Slice the array into small chanks

    return all;

}

1. Моя проблема в том, что выше - отправка всего массива или отправка его маленькими кусками без увеличения времени отклика!

2. Вторая проблема, которую я не могу определить, когда я говорю своему сценарию сканировать на следующую страницу!

Есть ли подход, который может значительно ускорить передачу данных в моей ситуации? так как количество сканирующих сайтов будет увеличено и, конечно, тогда будет больше время отклика !!

...