2017-02-19 77 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」 )加載頁面?

在我的網絡應用程序的某些情況下,前端會發送一個請求,如果一切正常,後端將響應指示更改哈希URL的數據。在那些情況下,我使用這種東西。

我不明白爲什麼這將是不好的做法,但我是新來的網絡開發,並想知道如果我做我不應該做的任何事情。

謝謝!

+0

儘管我沒有看到這種方法有什麼問題,但是使用路由器插件可能會有所幫助:https://github.com/camme/jquery-router-plugin – djthoms

+0

Daniel,您可以擴展goToExamplePage()是在做? – rasmeister

回答

0

單頁面應用程序(spa)的真正好處是根據與用戶的交互動態更改部分屏幕。限制自己讓後端服務器應用程序管理頁面轉換似乎受到限制。

我最近開發了一個引導程序html,然後客戶端應用程序驅動進程,根據用戶交互請求數據。

你可以做你正在做的事情,但我同意評論,建議你可能會更好使用路由器來促進。我個人試圖擺脫「頁面」的思維模式,並使用後端通過RESTful API提供數據。畢竟,這就是它被稱爲SINGLE頁面應用程序的原因。

相關問題