使用js callback機制實作呼叫頁面局部刷新
需求描述:審批表單頁面由我的待辦事項工作中打開,辦理完畢後希望關閉該頁面並且實現我待辦表格的實時刷新;同時該需求也同樣適用於從某些工作流管理模組中需要發起審批的情況,例如招聘需求模組中發起錄用流程;我的績效管理中審批績效等。
我們先來看看之前的實現,該邏輯實現的功能是,從我待辦列表中發起審批,審批結束後直接在當前頁面,也就是審批頁面跳轉至一個新的oa主頁面,並且打開我的工作-我待辦的頁簽,實現方法如下:
$("#but_back").bind("click", function() { window.top.opener=null; var url = window.location.href; var isoa=url.indexOf('phicomm.com'); //var isoatest=url.indexOf('oatest.phicomm.com'); var curWwwPath=window.document.location.href; var pathName=window.document.location.pathname; var pos=curWwwPath.indexOf(pathName); var localhostPaht=curWwwPath.substring(0,pos); var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); if(isoa>0){ window.top.open(localhostPaht+'/main/index.action?tableName=mywork','_self'); }else{ window.top.open(localhostPaht+projectName+'/main/index.action?tableName=mywork','_self'); } });
桌面js的處理邏輯:
$(document).ready(function($){ // 初始化图标 initModules(initMenus()); refixAppPos(); // 注册事件 regClick(); sortable(); initIcoRemove(); initAppManager(); //解析当前URL判断是否需要跳转制定Table gotoTable(); }); //跳转制定Table function gotoTable(){ var tableName = request("tableName"); if(""!=tableName&&null!=tableName&&'undefined'!=tableName){ openUrl($("#desktop_content_icon_"+tableName)); } }
以上方法雖然實現了辦理結束後跳至我的待辦的功能,但有以下缺陷:
跳轉是在新頁面中,並非在調用頁面,這樣就形成了調用和跳轉頁面兩個相同的桌面;
新的頁面並非與原始調用頁面完全一致,調用頁面如打開多個頁簽,新開的頁面相當於將除我的待辦外的其他頁籤關閉,並不符合用戶的需求;
用戶體驗不友善
我們使用js callback的實現如下,當前頁面的當呼叫頁面非空且未關閉時,我們就直接呼叫頁面中的js方法實現其局部的刷新。
/** 刷新父窗口关闭弹出窗口 */ function refreshAndClose(){ var jscallback = $.trim($("#jscallback").val()); var type = $.trim($("#type").val()); if (window.opener && !window.opener.closed && jscallback!=null && jscallback!="") { if(!type){ //本页面的调用页面执行其嵌入或调用的js方法 eval("window.opener."+jscallback+"();"); } window.close();//当前页面关闭 } else { window.top.opener=null; var url = window.location.href; var isoa=url.indexOf('phicomm.com'); var curWwwPath=window.document.location.href; var pathName=window.document.location.pathname; var pos=curWwwPath.indexOf(pathName); var localhostPaht=curWwwPath.substring(0,pos); var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); if(isoa>0){ window.top.open(localhostPaht+'/main/index.action?tableName=mywork','_self'); }else{ window.top.open(localhostPaht+projectName+'/main/index.action?tableName=mywork','_self'); } } }
呼叫頁面js:grid即為需要局部刷新的表格。
function openUrl(url){ url=url+"&jscallback=callsus" window.open(url,'_blank'); } function callsus(){ $('#performanceDataGrid').reload(); }
透過js callback實現了呼叫頁面的局部刷新,並對其他應用程式的類似功能具有一定的指導和參考意義。
更多使用js callback機制實現調用頁面局部刷新相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

本文討論了在瀏覽器中優化JavaScript性能的策略,重點是減少執行時間並最大程度地減少對頁面負載速度的影響。

本文討論了使用瀏覽器開發人員工具的有效JavaScript調試,專注於設置斷點,使用控制台和分析性能。

本文探討了Java收藏框架的有效使用。 它強調根據數據結構,性能需求和線程安全選擇適當的收集(列表,設置,地圖,隊列)。 通過高效優化收集用法

本文說明瞭如何使用源地圖通過將其映射回原始代碼來調試JAVASCRIPT。它討論了啟用源地圖,設置斷點以及使用Chrome DevTools和WebPack之類的工具。

本教程將介紹如何使用 Chart.js 創建餅圖、環形圖和氣泡圖。此前,我們已學習了 Chart.js 的四種圖表類型:折線圖和條形圖(教程二),以及雷達圖和極地區域圖(教程三)。 創建餅圖和環形圖 餅圖和環形圖非常適合展示某個整體被劃分為不同部分的比例。例如,可以使用餅圖展示野生動物園中雄獅、雌獅和幼獅的百分比,或不同候選人在選舉中獲得的投票百分比。 餅圖僅適用於比較單個參數或數據集。需要注意的是,餅圖無法繪製值為零的實體,因為餅圖中扇形的角度取決於數據點的數值大小。這意味著任何占比為零的實體

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。
