Hashbang versus URI parsé

Je cherche à déplacer mon site dans un chargement complet du document asynchrone, mais je ne veux pas utiliser le #! Méthode de traitement de la demande parce que 1) Je ne veux pas casser les liens, et 2) Je souhaite une manière plus souple de traiter les URI que le site obtient.

J'ai pu construire un MVC léger pour mon site qui permet une URL de style commun (ex: http://ddrewdesign.com/blog/jquery-is-or-is-child-of-function ) pour faire le Les demandes correctes.

  • Comment analyser les données JSONP retournées à partir du serveur distant
  • JQuery Ajax - Comment détecter une erreur de connexion réseau lorsque vous appelez Ajax
  • Obtenir la dernière demande d'ajax et annuler les autres
  • Différence entre dataType jsonp et JSON
  • Ajouter l'en-tête dans la requête AJAX avec jQuery
  • Comment passer ces chaînes de php à javascript
  • Ma question est la suivante: c'était trivialement facile à faire. Qu'est-ce qui me manque? Pourquoi Gawker et Google ont-ils opté pour #! Quand cette méthode semble avoir un sens plus du point de vue de l'expérience utilisateur?

    MODIFIER

    Pour la clarification, à l'origine, mon site utilisait uniquement la méthode querystring (pas de mod_rewrite ) pour récupérer les requêtes. Ces liens sont sur le Web, et je ne peux pas les faire partir. Je comprends qu'ils le feront si je déménage pour utiliser la méthode de hashbang. Encore une fois: cela pourrait faire partie de ma confusion, donc je ne dis pas que tout compte. Je demande ce qu'il me manque, car rien que j'ai lu jusqu'ici a fait semblant que je peux répondre à cette requête.

  • Pas capable de diviser un fichier et d'envoyer puis de se joindre au serveur
  • JQuery Fenêtre contextuelle Retourne la valeur au parent
  • Jquery ajax renvoie le succès lorsqu'il est directement exécuté, mais renvoie l'erreur lorsqu'il est attaché au bouton, même si la réponse du serveur est 200 OK
  • Réinitialiser d'autres fonctions javascript après avoir chargé une page avec une pagination ajax
  • Comment afficher les données binaires en tant qu'image - extjs 4
  • Comment forcer l'annonce à afficher sur la page ajax-loaded? (Adsense)
  • One Solution collect form web for “Hashbang versus URI parsé”

    Je pense que vous recherchez des URL historiques, qui vous permettent de faire des charges partielles de page, et ont les mêmes URL avec et sans javascript.

    Par exemple, disons que votre URL de base est http://site.com/ Avec history.pushState, vous pouvez utiliser javascript pour modifier la page pour être javascript.htm , de sorte que l'URL change à http://site.com/javascript.htm .

    #! Les URL ne fonctionnent que avec javascript, car le #fragment ne peut pas être consulté sur le serveur. Avec hashbangs, votre URL serait quelque chose comme http://site.com/#javascript.htm Notez que le ! Est inutile. Puisque vous pouvez définir n'importe quoi après le hash, vous pourriez également avoir l'URL http://site.com/#!/javascript.htm .

    Malheureusement, puisque IE ne supporte pas history.pushState, vous devez avoir #! Urls comme un repli.

    Aucune méthode ne casse le bouton arrière, mais les urls doivent être configurés de différentes façons pour chaque méthode.

    Hashbangs travaille quelque chose comme ceci:

     function change(){ //page update logic } //hashchange event binding (typeof window.addeventListener === "function") ? window.addEventListener("hashchange", change, false) : window.attachEvent("onhashchange", change); //This is how the hash is set location.hash = "hashstring"; //Accessing it returns the hashstring, with a # location.hash; //returns #hashstring 

    History.pushState est un peu plus complexe, car vous stockez l'état de la page dans un objet.

    Voici quelques bonnes références sur cette méthode:

    Les deux méthodes nécessitent une manipulation de la page javascript. J'ai un exemple de ces types d'URL. http://timshomepage.net/comic/ a des liens vers un tas de webcomics différents et les incorpore dans un iframe dans la page. Avec javascript désactivé, le lien ressemblera à http://timshomepage.net/comic/dilbert . Avec history.pushState, je peux avoir cette même URL. Avec hashbang fallback, je reçois une URL comme celle-ci: http://timshomepage.net/comic/#!/dilbert

    JavaScript rend le site Web intelligent, beauté et facile à utiliser.