發表文章

目前顯示的是有「AJAX」標籤的文章

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...

ASP.NET透過jQuery Ajax不斷更新呼叫WebMethod存取套用jQuery Sortable效果的DIV內項目順序列表

圖片
  首先先有辦法在drag放置完取得順序列表 See the Pen jQuery Sortable Test by Jacob ( @dryjoker ) on CodePen . 在前台stop方法裏頭包覆傳遞order list的ajax呼叫 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ . ajax ({ type : "POST" , url : "../SubWin/PatentDeDup.aspx/SaveOrderList" , contentType : "application/json;charset=utf-8" , data : '{order_list: "' + sort_id + '" }' , dataType : "json" , success : function ( data ) { if ( data . d == "success" ) { console . log ( "save order list successfully" ); } else { //alert(data.d); console . log ( "save order list not return success" ); console . log ( data . d ); } }, error : function ( result ) { alert ( "API Error" ); } }); 後端aspx.cs 1 2 3 4 5 6 7 8 [System.Web.Services.Web...

ASP.NET_AJAX生命週期事件流_AJAX技術跟傳統網頁不同優缺點比較

圖片
AJAX技術跟傳統網頁不同 傳統網頁技術採取同步(要等待、排隊)互動過程,Client端跟Server端一來一往的過程。 使用者向伺服器端發送請求 伺服器依照Client端請求執行相應邏輯再回傳結果 也因為這樣不連續過程 當伺服器忙線時候用戶就會有一段等待時間 優點 優點1.迅速網頁刷新 Ajax技術主要就是用Browser內建的Js運行HTTP通訊功能,藉此來進行和Server有效率的溝通,達到比較完善更具人性化的網頁互動效果。 優點2.透過非同步請求技術 Ajax可不用更新全部整個網頁葉面,且能多次傳送要更新的目標部分範圍跟資料。 換言之,Browser只需要於必要時跟Server溝通獲取資料即可,因而間接達到所謂快速而有效率的網頁刷新效果。 優點3.Client端分擔一些原應於Server上執行的程式 此外,也改善Server Loading問題,由於Ajax是將部分js程式送至於Client端電腦上 透過Browser進行生成網頁元件方式,來降低Server的Loading。 優點4.減少網路流量 Ajax傳送資料量由於是部分的而非傳統的整個網頁,因此 使網路較不易塞車加速其網頁更新速度。 缺點 缺點1.跨瀏覽器相容性問題(早期的問題) 必須要符合EMCA標準、W3C標準的瀏覽器,若是早期IE則可能常遇到不支援問題。 缺點2.javascript程式碼公開 由於程式碼實作於Client端,因此大家都能看的到,也使開發者較難保護智慧財產權。 缺點3.Ajax只能於相同網域下的Server做通訊,如果是要讀取不同網域資料則要透過類似CGI等方式才可能跨Server溝通。 缺點4.使用者容易無感在必要時需要給予提示訊息、進度顯示 傳統網頁可能在按鈕點擊查詢會有轉圈圈等待的圖示顯示,使用者會知道在查詢要等待。 但換到Ajax後容易沒有感覺,因而可能有重複按按鈕的行為發生。 缺點5.安全疑慮 由於不必刷新整個網頁,大部分業務操作都在遠端Browser因而容易有資料被竄改的風險。 例如下訂單金額被改成0,免費就購買成功等可怕的問題也會發生。 ASP.NET AJAX生命週期事件流 一個完整的ASP.NET  AJAX生命週期示意圖 Sys.WebForms.PageRequestManager 這個Class主要就是負責.NET AJAX...