Угловые наблюдаемые данные кэширования - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть угловой проект, который построен на Angular 6, и мой API - .net core 2.1.

Я реализовал разбиение на страницы.Вызов моего метода разбиения на страницы в моем .net core API с использованием почтальона работает очень хорошо.С углового конца я использую наблюдаемую.На событии ngOnInit я вызываю функцию fetchRecords(), и отображаются первые 10 записей.когда я нажимаю «Далее», я снова вызываю метод fetchRecords(), передавая правильные параметры пагинации, но страница все еще сохраняет первые 10 записей, я также заметил, что в console.log () записи, поступающие из API, остаются такими жепервые 10 записей.У меня есть кнопка обновления, которая снова вызывает метод fetchRecords(), когда я немедленно нажимаю кнопку обновления, ничего не меняется.Но если я жду около 7+ секунд, отображаются следующие 10 записей.Есть ли какое-то кэширование в моей наблюдаемой, которое удерживает ответ на запрос в течение нескольких секунд?Если да, то как мне это исправить?

/* My Fetch Requests method in my component.ts */

fetchRecords(){

let requestData:any = {
   skip: (this.page * this.rowsPerPage) - this.rowsPerPage,
   take: this.rowsPerPage
}


this.api.post('apiUrl/fetchRecords', requestData).subscribe(res=>{ // this is where i subscribe
 console.log('results', res); // Does not change unless delayed for 10 seconds
}
error=>{

})

}



goToNextPage(){
  this.page = this.page + 1;
    this.fetchRecords(); 
}

goToPreviousPage(){
  this.page = this.page - 1;
    this.fetchRecords();
}



/* Post Method */

post(url, obj) : Observable<any>{
    return this.http.post(`${this.baseUrl}/${url}`, obj, this.options)
    .map((response: Response) => {
        return response.json();
    });
}

1 Ответ

0 голосов
/ 21 декабря 2018

Я нашел решение.По-видимому, я просто осознаю ответы угловых кэшей от http-запросов.Я попытался добавить заголовки Cache Control без кэширования и все такое, но это не сработало.В конечном итоге сработало добавление уникальной строки даты в мой URL-адрес поста в качестве параметра (Успешное создание каждого URL-адреса запроса уникальным), и теперь мои запросы загружались нормально даже в быстрой последовательности.Вот фрагмент кода

post(url, obj) : Observable<any>{
    return this.http.post(`${this.baseUrl}/${url}`+ "?"+new Date().toString(), obj, this.options)
    .map((response: Response) => {
        return response.json();
    });
}

Спасибо всем за ваш вклад.

...