伊莉討論區

標題: 多頁面存取同Session問題 [打印本頁]

作者: ggnnyy    時間: 2016-5-21 03:49 PM     標題: 多頁面存取同Session問題

本帖最後由 ggnnyy 於 2016-5-21 03:57 PM 編輯

各位大大好:
如下面程式,如果將每次部分檢視用ajax執行時,session的值就加1,
在下面情況如果同一個瀏覽器開N個此頁面,那每次顯示的session的值就會加N,
像此類型況,我有辦法限制這個頁面不能重複開啟,
或者是其他什麼方法讓開多個同頁面時顯示的session還是累加1而已嗎?
Controller:
  1.          public ActionResult Index()
  2.         {            
  3.             Session["aaa"] = 1;         
  4.             return View();
  5.         }

  6.         public ActionResult PartialIndex()
  7.         {
  8.             Session["aaa"] = int.Parse(Session["aaa"].ToString()) + 1;
  9.             ViewBag.ii = Session["aaa"];
  10.             return PartialView();
  11.         }
複製代碼
View:
  1. <div id="adiv">
  2.     @Html.Action("PartialIndex", "Home")
  3. </div>
  4. <script>
  5.     setInterval(function () {
  6.         $.ajax({
  7.             url: '@Url.Action("PartialIndex", "Home")',         
  8.             success: function (result) {
  9.                 $("#adiv").html(result);
  10.             }
  11.         });
  12.     }, 3000);
  13. </script>
複製代碼

作者: Semisphere    時間: 2017-1-30 01:51 PM

可以由前端產生類似GUID的隨機不重複字串,並傳到後端塞入session的指定key中,由session判斷該key是否有多value。

再來若是要統計(只累加1)的需求,就只要判斷session該key是否有東西,有就得1,無就0;若是要限定前端只能允許單開,後端傳資料前先判斷session該key是否有東西,有則吐禁止多開訊息或空資料,若無則吐對應訊息或資料即可。




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!