recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Problèmes dans les programmes avancés js

Quand j'ai vu la page 492 de Advanced JavaScript Programming (Troisième édition), j'ai eu une question

Lorsque j'utilise une "fausse" URL et que je l'actualise, une erreur 404 sera renvoyée. À moins que j'aie un vrai lien comme celui-ci sur le serveur Web, l'utilisateur devra inévitablement actualiser la page. Le vrai ? Le fichier correspond au vrai lien Alors à quoi sert pushState() ?

黄舟黄舟2703 Il y a quelques jours983

répondre à tous(4)je répondrai

  • 淡淡烟草味

    淡淡烟草味2017-07-05 11:09:56

    pushState Principalement utilisé dans les applications SPA, pour répondre à la question :

    404 apparaît. En effet, il n'y a pas de # dans l'URL en mode PushState, le navigateur va effectivement lancer une requête au serveur, et nous n'avons pas de ressource correspondant à ce chemin sur le serveur.

    Mais il n'est pas nécessaire d'avoir un vrai lien sur le serveur (ça fatiguera les gens à mort), il suffit de changer la configuration du serveur pour que la page inexistante (404) redirige vers la route racine.

    Prenons Tomcat comme exemple. La configuration est très simple. Ajoutez simplement la configuration suivante au web.xml de votre projet :

        <error-page>
            <error-code>404</error-code>
            <location>/</location>
        </error-page>

    De cette façon, Tomcat redirigera tous les chemins où les ressources ne peuvent pas être trouvées vers le chemin racine, afin que votre framework front-end, qu'il soit angulaire/vue/react/backbone, puisse traiter seul l'URL demandée en façade. -fin.

    Pour les autres types de serveurs, tels que nginx/apache/IIS, veuillez vous référer à ce document : https://github.com/angular-ui...

    Source : https://my.oschina.net/mumu/b...

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 11:09:56

    Appuyez sur Actualiser pour envoyer une requête au serveur avec l'URL du navigateur actuel.

    Par exemple, si vous modifiez l'adresse actuelle en boomshaklaka.com/boom via pushState()
    Après avoir cliqué sur Actualiser, le serveur renverra 404 lorsqu'il recevra cette adresse et constatera qu'elle n'existe pas.

    répondre
    0
  • 漂亮男人

    漂亮男人2017-07-05 11:09:56

    Tout d'abord, vous devez comprendre la différence entre le routage front-end et le routage back-end.

    Dans le cas d'un routage backend uniquement, toutes les pages que vous demandez vous sont renvoyées par le backend. À ce stade, tout le routage est contrôlé par le backend.

    Mais parfois on ne veut pas actualiser la page, mais l'url veut aussi qu'elle change, comme les applications SPA. À l’heure actuelle, nous avons besoin d’un routage frontal, et ce pushState joue ici ce rôle.

    répondre
    0
  • 某草草

    某草草2017-07-05 11:09:56

    Tout d'abord, je suis encore habitué au traitement du routage en arrière-plan, je vais utiliser le routage en arrière-plan comme exemple :

    .

    Tout d’abord, l’url peut être définie arbitrairement Quant au fichier du projet que vous souhaitez associer, c’est à vous de décider

    .
    <action name="index">
        <result>xxx/index.jsp</result>
    </action>
    <action name="login">
        <result>xxx/index.jsp</result>
    </action>

    Différentes actions peuvent pointer vers la même page, votre site Web doit donc avoir au moins une page

    Deuxième :

    Dans les fichiers HTML, la méthode history.pushState() ajoute un état à l'historique du navigateur.

    Plus utilisé pour définir un point d'ancrage :

     window.location = "#foo";

    Quant au 404 évoqué dans l'article, c'est quand même parce qu'il y a un problème de sens de routage et que la ressource n'est pas trouvée.

    répondre
    0
  • Annulerrépondre