2010-01-14 5 views
4

J'essaie de collecter des statistiques sur certains événements de clics se produisant sur ma page Web. J'ai pensé que je voudrais ajouter un événement onmouse aux liens que je veux suivre, et déclencher un appel ajax à mon script PHP de suivi.Appel jQuery Ajax sans résultats attendus

Quel serait le moyen le plus efficace de le faire, sachant que je ne m'attends à rien en retour, et que les choses devraient continuer normalement même en cas d'échec?

Je sais qu'il y a des appels HTTP spéciaux quand vous ne vous attendez à aucune donnée. C'est quoi exactement? Est-ce que jQuery le supporte? Qu'en est-il de mon script PHP, devrait-il retourner un en-tête HTTP spécial?

Tout conseil pour rendre cette efficacité est le bienvenu.

Merci

Nathan

Répondre

5

Vous pouvez envoyer un 204 no content. Google semble le faire sur leur page d'accueil pour exactement le même but pour permettre au client de rechercher une entrée DNS plus rapidement.

Voir cette question SO sur la façon dont Google utilise: Google.com and clients1.google.com/generate_204

Et le Status Code Definition sonne à peu près droite:

10.2.5 204 Aucun contenu

Le serveur a rempli la demande mais n'a pas besoin de renvoyer un corps d'entité et peut vouloir renvoyer metainformation mise à jour. La réponse PEUT inclure une nouvelle méta-information sous forme d'en-tête d'entité , qui, si elle est présente , DEVRAIT être associée au variant demandé .

Si le client est un agent utilisateur, il ne devrait pas changer son point de vue du document de ce qui a provoqué la demande de être envoyé. Cette réponse est principalement destinée à permettre l'entrée d'actions à lieu sans provoquer un changement de la vue du document de l'agent utilisateur actif, bien que toute nouvelle ou mise à jour métainformations Peut-on appliquer à le document actuellement actif de l'agent utilisateur vue.

La réponse 204 NE DOIT PAS inclure un corps de message , et est donc toujours terminée par la première ligne vide après les champs d'en-tête.

+0

bonne chose. Qu'en est-il de l'appel jQuery Ajax lui-même? Est-ce que GET est le meilleur? Ou pouvons-nous faire une tête ou quelque chose comme ça? Ou est-ce que ça en vaut la peine? –

+0

Bonne question. Je ne sais pas 100% mais un GET devrait être suffisant (je n'ai jamais vu un appel HEAD en Ajax). Avec un 204, le corps de la réponse serait vide de toute façon. –