Bonjour,
j'essaye de trouver une solution pour un problème d'Ajax avec jQuery sur des appareils ipad 2 et 4 pour un site sous drupal 7 avec un thème responsive sous fundation.
En effet il y a une recherche thématique sur la page d'accueil avec différents filtres (recommandé, populaire, jeux...) et chaque clic (événement onclick) sur ces filtres déclenche une recherche ajax puis la mise à jour du bloc d'articles en dessous, cette recherche marche sous tous les navigateurs (même sous Safari sur un ordinateur MAC), de même que sur les devices Android, mais elle ne marche pas sur les ipad 2 et 4. On a également effectué des tests sur le service browserStack dont le client dispose d'un abonnement pour tester sur leurs simulateurs, et après quelques recherches sur le net et corrections suggérées en ajoutant les attributs cache: false, async: true, header (cache-control...) à la fonction $.ajax de jQuery, et même timeout à +-15mns, la recherche a marché sur leur simulateurs ipad 2 et 4, mais quand on a testé encore sur un vrai device physique ipad 2 et 4 (on a branché l'ipad sur un MAC pour avoir accès au débugger) les requêtes ajax sont bien lancées mais on a toujours le même résultat.
le code ajax est assez classique
Merci d'avance pour vos suggestions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $.ajax({ url : 'search/ajax', // La ressource ciblée type : 'GET', // Le type de la requête HTTP. timeout: 90000, //+- 15mn <===================== ajouté pour tester une solution async: false, //<===================== ajouté pour tester une solution cache: false, //<===================== ajouté pour tester une solution headers: { "cache-control": "no-cache" }, //<===================== ajouté pour tester une solution data : 'theme=' + theme + '&recommande=' + recommended + '&populaire=' + popular + '&media=' + formats + '&public=' + target_audience + '&page_current=' + page_current + '&lang=' + lang, dataType : 'html', success : function(code_html, statut){ // code_html contient le HTML renvoyé $('div#result-search').html(code_html); $('div.hero-content-block').each(function (index, value) { setTimeout($(this).show("slow"), 3000); }); action_clic_filter_search(page_current, lang, selecteur_device); } });
Partager