後台只返回JSON JSON陣列您們是怎麼做介面跳轉,和URL改變的?

時間 2021-05-29 23:27:08

1樓:「已登出」

那是前後端分離模式,現在都很主流了,以前是後端儲存請求路徑,前端不是了,路徑是前端自己儲存的,可以去看看vue、react等,它們自帶路由,而不像單體時代的,路徑儲存在後端了。而且路徑儲存在後端,效能相對而言也比較差,可能同樣乙個功能,需要向後端傳送兩次或更多次請求。

2樓:毛草

大體上兩種,分別是前台和後台。

前台的話如上邊所說,用angularJS一類的東西。後台則是http://

ASP.Net

裡設定。共通點是結構上都要通過route/controller的方式。

需要注意的是,純粹通過URL進網頁的話是不能儲存當前state的,所以渲染當前頁面需要的所有資訊都必須放在URL裡邊。或者如果是後台的話,可以通過session cookie(不推薦)或者使用者認證的方式取得當前狀態。

另外,後台返回JSON是服務層的設計,這個設計本身沒有任何問題。但是展現層(UI)本身其實也是分前後臺的。所以實際上跳轉之類是在這裡處理。

3樓:

其實對於web來說,無論是Single Page還是傳統的web他們都需要 Route + Controller,不同時是乙個放在瀏覽器中,乙個放在伺服器中(或者有個中間層node.js)

對於瀏覽器Route機制來說可以看看下面的:

Backbone.js 路由機制

AngularJS路由和模板

通常URL傳值,在?後附加以=連線的鍵值對,各鍵值對間以&連線;也可以通過URL傳遞頁面引數,在」#」後附加的方式。兩者最大的乙個區別在於:

後者不會發起請求,不會導致頁面重新整理。常見應用場景在於:不需要請求伺服器,由瀏覽器端指令碼直接定位到某個條件下的頁面展示。

如果需要根據URL的hash值變化,來進行不同的頁面處理,需要乙個監測方案。最常見的方法就是通過乙個定時程式,不停的去檢測url中hash的變化,一旦檢測到變化,則觸發操作

但這個方案並不是實時觸發的,而且究竟該多久檢測一次,沒有乙個有依據的數值。如果數值過大,可能會影響到頁面的快速呈現;如果數值過小,則會引起過高的資源占用。比較完美的乙個方式是採用onhashchange的事件監測。

hashchange事件在html5中有定義,在url的hash段變化的時候觸發。目前支援onhashchange的瀏覽器有:

Gecko 1.9.2 (Firefox 3.6/Thunderbird 3.1/Fennec 1.0)

IE 8

WebKit 528+ (Safari/Google Chrome)

Opera 10.70

// 判斷瀏覽器支援onhashchange事件if(

('onhashchange'

inwindow)&&

((typeof

document

.documentMode

==='undefined')||

document

.documentMode==8

))else

},150);}

4樓:李仁海

可以在前端層面上也做一層路由,利用url中的hash部分,也就是#之後的部分,這個部分不會被伺服器接收,但可以被js讀取和修改。

前端頁面載入後讀取這個部分的資料,根據url的模式做不同的頁面跳轉。此外,在頁面跳轉時,也更改hash,push歷史,

前端框架裡基本都是這樣的實現,你可以參考一下angularjs的路由部分。

注: 我並沒有親自實現過這個路由機制,答案僅供參考。

5樓:聶鑫

請參考任意乙個MV*框架的具體實現。

簡單地說,你所看到的url一般都是定義在為route,然後根據不同的route來渲染layout和請求相應的資料。

BackBone Tutorial

JS 建構函式返回值的問題

如果return的值是object,那麼就返回這個return的object,前面的this就都是無效的 如果return的值型別不是object,就還是返回this 搬運一下Annotated ES5 11.2.2 The new Operator The production NewExpres...

免費的天氣預報Api有哪些?返回資料是json格式的

douyacun 部落格增加天氣外掛程式開發,從中國天氣網爬的,每小時更新一次,開放了乙個API 出來,返回資料是json 支援 小時預報 7天天氣預報 尾號限行 生活指數 空氣質素 日公升日落時間 中國城市天氣介面 小時預報,7天天氣預報,尾號限行,生活指數,空氣質素,日公升日落時間 Douyac...

前後端分離,後台返回的資料前端沒法寫,怎麼辦?

solZ 可以使用其他工具,來規定資料格式,比如我原來在一家遊戲公司實習時,他們使用Protobu,先規定好資料格式 然後前後端根據規定的資料格式,填充資料 老藍人 作為乙個全棧,我想對這個phper說,you can you up,no can no bb。最好的結果是他幫你做了,多好。 小陳 O...