javascript - Problèmes dans les programmes avancés js
黄舟
黄舟 2017-07-05 11:07:56
0
4
1000

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() ?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(4)
淡淡烟草味

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...

过去多啦不再A梦

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.

漂亮男人

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.

某草草

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal