javascript - js の高度なプログラムの問題
黄舟
黄舟 2017-07-05 11:07:56
0
4
993

『Advanced JavaScript Programming (Third Edition)』の 492 ページを見たとき、質問がありました。

「偽の」URL を使用して更新すると、404 エラーが返されます。Web サーバー上にこのような実際のリンクがない限り、ユーザーは必然的にページを更新する必要があります。本当に更新したいですか?作ってみませんか? 実ファイルは実リンクに相当します では、pushState() は何を使うのでしょうか? 非常に不便ではありませんか?

黄舟
黄舟

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

全員に返信(4)
淡淡烟草味

pushState 質問に答えるために、主に SPA アプリケーションで使用されます:

404が表示されます。これは、PushState モードでは URL に # がなく、ブラウザーが実際にサーバーへのリクエストを開始し、サーバー上にこのパスに対応するリソースがないためです。

しかし、サーバー上に実際のリンクを持つ必要はありません (死ぬほど疲れます)。存在しないページ (404) がルート ルートにリダイレクトされるようにサーバー構成を変更するだけで済みます。

Tomcat を例に挙げると、設定は非常に簡単です。次の設定をプロジェクトの web.xml に追加するだけです。 リーリー

このようにして、Tomcat はリソースが見つからないすべてのパスをルート パスにリダイレクトするため、フロントエンド フレームワークは、それが angular/vue/react/backbone であっても、要求された URL をフロントで独自に処理できます。 -終わり。

nginx/apache/IIS などの他のタイプのサーバーについては、このドキュメントを参照してください: https://github.com/angular-ui...

出典: https://my.oschina.net/mumu/b...

いいねを押す +0
过去多啦不再A梦

更新を押すと、現在のブラウザの URL を含むリクエストがサーバーに送信されます。

たとえば、pushState() を使用して現在のアドレスをboomshaklaka.com/boomに変更した場合
[更新]をクリックした後、サーバーはこのアドレスを受信し、そのアドレスが存在しないことが判明すると 404 を返します。

いいねを押す +0
漂亮男人

まず、フロントエンド ルーティングとバックエンド ルーティングの違いを理解する必要があります。

バックエンドルーティングのみの場合、リクエストしたすべてのページはバックエンドによって返されます。現時点では、すべてのルーティングはバックエンドによって制御されます。

ただし、SPA アプリケーションなど、ページを更新したくないが、URL も変更したい場合があります。現時点ではフロントエンドルーティングが必要であり、このpushStateがこの役割を果たします。

いいねを押す +0
某草草

まず第一に、私はまだバックグラウンドでのルーティングの処理に慣れています。例としてバックグラウンド ルーティングを使用します。

まず、プロジェクト内のどのファイルを関連付けるかは、あなた次第です

リーリー

異なるアクションが同じページをポイントできるため、ウェブサイトには少なくとも 1 つのページが必要です

2番目:

HTML ファイルでは、history.pushState() メソッドがブラウザ履歴に状態を追加します。

アンカーポイントの設定にさらに使用されます:

リーリー

記事内で言及されている404については、ルーティング方向に問題があり、リソースが見つからないため、まだ残っています。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート