session heartbeat技巧_不讓session因為timeout而遺失

https://careynieuwhof.com/how-to-avoid-a-shrinking-heart-in-leadership/ 在之前篇章有介紹藉由webmethod來搭配jQuery呼叫做資料複選功能 ASP.NET下拉選單DropDownList套用jQuery複合選取時的經驗談 https://coolmandiary.blogspot.com/2021/03/aspnetdropdownlistjquery.html 其實會有一個功能缺失 因為不是存在viewstate(透過static webmethod也不允許) 而是存於session因此容易會有使用者複選了一些值後想說網頁表單就閒置給她放著 去廁所甚至開會或者吃中餐 超過session保留時間(可能預設的20分鐘也可能其他門檻) 此時就容易導致所選取好的資料遺失 這邊可以藉由 類似心跳的概念 定時每隔30秒呼叫一次ajax請求到server side做一個session再次保存的機制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <script type= "text/javascript" > $( function () { //Keep Session Heart Beat setInterval( function () { //let date = new Date(); //console.log(date.toLocaleString()); $.ajax({ type: "POST" , url: "AdminMembership.aspx/SessionHeartBeat_NGO_MultiSelect" , contentType: "application/json;charset=utf-8" , succ...