Dans une application angulaire à une seule page pendant les requêtes HTTP get en cours (avant le chargement complet de la page), si je recharge la page, toutes les demandes HTTP errorcallbacks sont appelées. J'utilise Google Chrome. Enregistrez le code ci-dessous dans un fichier html et rechargez la page juste après son ouverture pour reproduire le problème. Cela interrompt la page entière car il affiche les alertes de toutes les API appelées. S'il y a 50 demandes http en attente, j'obtiens 50 alertes d'erreur lors du rechargement de la page pendant la requête http.Je ne veux pas supprimer l'alerte de la fonction errorCallBack du http get. Si je recharge la page après que toutes les requêtes http ajax sont terminées alors cela ne montre aucune erreur. S'il vous plaît aidez-moi à contourner ce problème.Erreur de rechargement de la page js angulaire pendant les requêtes http en attente
<div ng-app="iceApp" ng-controller="allCharacterController as myCharacter">
<input type="text" id="search1" ng-model="search.name">
<div ng-repeat="book in myCharacter.character | filter : search">
{{book.name}}
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<script type="text/javascript">
var myApp = angular.module('iceApp', []);
myApp.controller('allCharacterController',['$http',function($http) {
var main = this;
this.character=[];
this.baseUrl = 'https://www.anapioficeandfire.com/api/';
// there were 50 pages to get data from thats why i have made a loop
this.allCharacters = function(){
for(i=1;i<50;i++){
$http({
method: 'GET',
url: main.baseUrl+"characters?page="+i+"&pageSize=50"
})
.then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
console.log(response.data);
if(response.data.length>0){
main.character.push.apply(main.character,response.data);
}
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
alert("some error occurred. Check the console.");
console.log(response);
});
}
}// end load all blogs
this.allCharacters();
}])
</script>
ps: Je suis vraiment frappé par cela. S'il vous plaît, aidez-moi à le contourner. Ci-dessus est une question minimaliste que j'ai faite pour reproduire le problème. application web réelle j'ai travaillé sur: https://codemachin.github.io/gameofthrones/
Utilisez les alertes et autres dialogues modaux avec parcimonie car ils sont perturbateurs. Leur apparition soudaine force les utilisateurs à arrêter leur tâche actuelle et à se concentrer sur le contenu du dialogue. Parfois c'est une bonne chose mais ** la plupart du temps c'est inutile et très souvent c'est très ennuyeux. ** Pensez à des alternatives telles que l'expansion en ligne et les toasts. – georgeawg
* Je suis toujours à la recherche d'une meilleure solution qui affiche même une seule alerte car le rechargement est intentionnel. * La solution la plus simple consiste à supprimer l'alerte. Quelle erreur se produit et pourquoi l'utilisateur doit-il être interrompu? – georgeawg
C'était une erreur que j'ai corrigée par la suite. En fait, je voulais dire ---_ je suis toujours à la recherche d'une meilleure solution qui ** ne montre pas ** même une seule alerte parce que le rechargement est intentionnel_ –