2014-11-04 66 views
0

我正在一個更大的網站上工作。這個網站是一個單頁面的應用程序,100%沒有請求,只有ajax調用。 Ajax調用具有不同的接收者,因爲該網站基於模塊化。 (例如,新聞模塊調用AjaxNews.aspx,傳輸模塊調用AjaxTransport.aspx)。概念:在哪裏保存與每個Ajax調用相關的數據?

在前端我大部分基本的JavaScript與jQuery的很多,後端是在ASP.Net與C#MS SQL數據庫和Lynq。

現在有了一個新的請求,我們應該有「分部」,用戶可以選擇一個分部,並且所有的模塊都在這個分部設置上進行過濾。第10部分有另一個新聞然後部門50等...

該部門是一個簡單的前端下拉,因爲它是每次你重新設置F5,沒有任何數據從這個部門被保存在後端。但我需要在後端的信息,因爲每個請求都依賴於這個信息,因爲我必須在分區設置的數據庫查詢過濾!

那麼在哪裏存儲這些信息以及如何維護?

我唯一的想法是將它存儲在會話中,例如,重新開始時,我爲每個用戶和分部下拉菜單的默認分區編寫會話。我使用ajax調用和後端更改用戶會話分區,只要我需要它,因爲它的會話就可以獲得此信息,對不對? 這是最好的解決方案嗎?

+0

存儲在URL中的信息,並使用類似[Path.JS](http://www.javascriptoo.com/path- JS)。 – 2014-11-04 13:40:21

+0

問題是,當我必須將其存儲在後端的URL中時,我有很多不同的接收者,我必須在每個接收者中聲明這些信息的接收方法! – Kovu 2014-11-04 13:41:16

+0

爲什麼不使用cookie? – 2014-11-04 15:55:19

回答

0

我認爲最好的解決方案是有一個數據屬性foreach元素(例如data-val ='division1')的下拉客戶端,所以onChange你可以通過jQuery檢索該值(例如$('# dropdownID')。attr('data-val'))並將它作爲參數傳遞給你的ajax調用。

HTML/JS示例:

 data = "division=" + $('ddTest').attr('data-val'); 
 

 
     $.ajax({ 
 
      type: "POST", 
 
      url: "/ajax/divisionsPage.aspx", 
 
      data: data, 
 
      success: function (result) { 
 
       //do something 
 
      } 
 
     });
<select id="ddTest"> 
 
    <option data-val='division1'>division one</option> 
 
    <option data-val='division2'>division two</option> 
 
</select>