2008-11-03 8 views
3

J'ai un site que j'ai développé qui fait un bon usage de Javascript, et une utilisation minimale d'AJAX pour un certain nombre de choses. Le site a bien fonctionné sur l'iPhone jusqu'à ce que j'ajoute le function to create an HttpRequest handle à quel point tout le Javascript sur l'iPhone échoue maintenant silencieusement. Donc, j'ai quelques questions.AJAX sur l'iPhone?

(1) Il semble que AJAX ne fonctionne pas du tout sur l'iPhone. Est-ce vrai? Si non, comment puis-je modifier la fonction de création HttpRequest pour accueillir l'iPhone?

(2) Si AJAX est en effet impossible sur l'iPhone, y at-il un moyen de modifier la fonction donnée afin qu'elle échoue gracieusement sur l'iPhone, et d'autres scripts sur la page fonctionneront toujours?

(3) Si ce n'est pas vrai, que dois-je faire côté serveur (et est-ce même possible?) Détecter l'iPhone, de sorte que je puisse retirer le code AJAX entièrement lorsqu'un iPhone demande la page? Le fonctionne également très bien, c'est-à-dire la possibilité d'utiliser CSS pour détecter l'iPhone en tant que périphérique d'affichage et d'agir en conséquence, similaire à ce que vous utilisez avec Opera Show. Bien sûr, cela ne réglerait pas le problème AJAX, mais ce serait bien.^_^

Merci pour les réponses. Plusieurs de mes clients accèdent régulièrement au site à partir de l'iPhone, et je souhaite que mes pages fonctionnent autant que possible. Je suis donc prêt à modifier mon code, même si je n'en ai pas encore testé.

Répondre

11

Bien sûr, l'iPhone prend en charge ajax, consultez http://developer.apple.com/webapps/ pour un groupe de ressources pour le développement webapps iPhone. Je recommanderais d'utiliser un framework (tel que jQuery, ou iUI (for ui)) plutôt que de rouler votre propre fonctionnalité ajax, il va déjà adresser beaucoup de caprices du navigateur et être optimisé.

1

Il n'y a aucune raison AJAX ne fonctionnerait pas sur l'iPhone, beaucoup de sites de Google/Facebook etc l'utilisent parfaitement bien.

Est-ce que votre AJAX fonctionne sous Safari/Mac? C'est l'approximation la plus proche que vous obtiendrez dans un environnement non mobile.

J'imagine qu'il ya un bug quelque part dans votre javascript que vous êtes tout simplement pas repérer

+0

Oui, je le test régulièrement sur Safari pour Windows. Je n'ai pas (et je ne veux pas) de Mac pour le tester. Peut-être que c'est juste quelque chose d'autre que je fais ... –

+1

Je suggérerais de ne pas utiliser w3schools pour votre référence primaire, ils sont un hotch-potch d'IE et des informations non standard. Essayez une implémentation AJAX plus testée, par exemple jQuery? – Gareth

+0

Wow, vraiment? Je me suis dit (basé sur le nom) qu'ils étaient plus standard que ça ... Merci pour l'info. C'est probablement mon problème là. Je veux dire, si c'était moi, je n'utiliserais pas du tout la version IE (ActiveX a besoin de mourir), mais je sais que je ne devrais probablement pas faire ça ...^_ ^) –

1

La console de débogage est une ressource utile pour résoudre les erreurs JavaScript de ce type sur le périphérique. Il doit signaler toute erreur d'analyse et peut également être utilisé pour consigner des messages et des exceptions. Vous pouvez l'activer depuis Paramètres> Safari> Développeur (faites défiler vers le bas).

0

Aax fonctionne parfaitement sur l'iPhone, même nos trucs les plus avancées comme les Ajax Calendar Starter-Kit fonctionne parfaitement sur au moins mon iPhone (3G)

Questions connexes