2017-02-19 5 views
0

.on( "hashchange"、...)を使用して、単一のページアプリケーションでページの変更をトリガーしますか?

window.location.hash = '#example'; 

この持つようなものを使用することは悪い習慣である場合、私は思っていた:。$()を使用する実際のメソッドに委譲する

$(window).on('hashchange', function() { 
    if (window.location.hash) { 
     navigateToHashUrl(window.location.hash); 
    } 
}); 

function navigateToHashUrl(hashUrl) { 
    if(hashUrl == '#example') { 
     goToExamplePage(); 
    } else if ... 
    ... 
} 

を負荷(「HTML」 )ページをロードするには?

ウェブアプリケーションでは、フロントエンドからリクエストが送信され、すべてがOKであれば、バックエンドはハッシュURLを変更することを示すデータで応答します。そのような場合、私はこの種のものを使用します。

私はなぜそれが悪い習慣であるかはわかりませんが、私はweb-devには新しく、私がやってはいけないことをやっているかどうか知りたいと思います。

ありがとうございます!

+0

私はこのアプローチで間違ったことは見当たりませんが、ルータプラグインを使用すると恩恵を受けるかもしれません:https://github.com/camme/jquery-router-plugin – djthoms

+0

Daniel、goToExamplePage()やってる? – rasmeister

答えて

0

単一ページアプリケーション(spa)の本当の利点は、ユーザーとのやり取りに基づいて画面の一部を動的に変更することです。バックエンドサーバーアプリケーションでページ遷移を管理することに制限されているように思えます。

最近のスパでは、クライアントサイドのアプリケーションがプロセスを駆動し、ユーザーの操作に基づいて必要に応じてデータを要求するというhtmlのブートストラップを一度に作成しました。

あなたは何をしているのですか?私は、あなたがルータを使って容易にする方が良いかもしれないという意見に同意します。

個人的には、私は「ページ」の考え方から離れて、RESTfulなAPIを介してデータを提供するためにバックエンドを使用しようとします。結局のところ、それは単一のページアプリケーションと呼ばれている理由です。

関連する問題