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