history.pushState是HTML5 History API中的一個方法,用于在不刷新頁面的情況下改變?yōu)g覽器地址欄中的URL,并且可以添加歷史記錄。這個方法一般與popstate事件結(jié)合使用,以便在瀏覽器的前進后退按鈕被點擊時能夠正確地處理頁面狀態(tài)。
而hashbang是指URL中以"#“號開頭并且跟隨一個”!"號的一種格式,如:http://example.com/#!/page。在過去,hashbang被用來實現(xiàn)前端路由,通過監(jiān)聽hashchange事件來改變頁面內(nèi)容而不引起頁面刷新。但現(xiàn)在,隨著HTML5 History API的普及,hashbang逐漸被淘汰,因為它有一些缺點,比如URL不夠友好、SEO不友好等。
總的來說,history.pushState是一種更加先進且靈活的方式來改變URL而不刷新頁面,而hashbang則是一種過時的方式。