Heim > Web-Frontend > js-Tutorial > Verwenden Sie den js-Rückrufmechanismus, um eine teilweise Aktualisierung der aufrufenden Seite zu implementieren

Verwenden Sie den js-Rückrufmechanismus, um eine teilweise Aktualisierung der aufrufenden Seite zu implementieren

高洛峰
Freigeben: 2016-12-17 15:51:31
Original
1926 Leute haben es durchsucht

Anforderungsbeschreibung: Die Seite mit dem Genehmigungsformular wird in meiner Aufgabenliste geöffnet. Nachdem die Verarbeitung abgeschlossen ist, hoffe ich, die Seite zu schließen und gleichzeitig eine Echtzeitaktualisierung meines Aufgabenformulars zu erreichen Die Anforderung gilt auch für bestimmte Workflow-Management-Module, in denen eine Genehmigung eingeleitet werden muss, z. B. die Einleitung des Rekrutierungsprozesses im Modul „Rekrutierungsanforderungen“ zur Genehmigung der Leistung in meinem Leistungsmanagement usw.

Verwenden Sie den js-Rückrufmechanismus, um eine teilweise Aktualisierung der aufrufenden Seite zu implementieren

Schauen wir uns zunächst die vorherige Implementierung an. Die Funktion dieser Logikimplementierung besteht darin, die Genehmigung aus meiner To-Do-Liste einzuleiten direkt auf der aktuellen Seite sein, d. h. Die Genehmigungsseite springt zu einer neuen Hauptseite und öffnet die Registerkarte „Meine Arbeit – Meine Aufgaben“. Die Implementierungsmethode ist wie folgt:

$("#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'); 
        } 
    });
Nach dem Login kopieren

Desktop js Verarbeitungslogik:

$(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)); 
    } 
}
Nach dem Login kopieren

Obwohl die obige Methode die Funktion des Springens zu meiner Aufgabe nach Abschluss der Verarbeitung realisiert, weist sie die folgenden Mängel auf:

Der Sprung erfolgt in einem neuen Zustand Seite, nicht auf der aufrufenden Seite, wodurch eine Aufruf- und Sprungseite zu zwei identischen Desktops entsteht.

Die neue Seite ist nicht genau dieselbe wie die ursprüngliche aufrufende Seite Die geöffnete Seite entspricht dem Hinzufügen anderer Seiten außer „Meine Aufgaben“. Das Schließen der Registerkarte entspricht nicht den Anforderungen des Benutzers;

Die Benutzererfahrung ist nicht freundlich

Wir verwenden js Callback, um es wie folgt zu implementieren . Wenn die aufrufende Seite der aktuellen Seite nicht leer ist und nicht geschlossen wurde, rufen wir direkt die js-Methode auf der Seite auf, um eine teilweise Aktualisierung zu erreichen.

/** 刷新父窗口关闭弹出窗口 */ 
    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'); 
            } 
        } 
    }
Nach dem Login kopieren

Rufen Sie die Seite js auf: Grid ist die Tabelle, die teilweise aktualisiert werden muss.

function openUrl(url){ 
    url=url+"&jscallback=callsus" 
         window.open(url,'_blank');    
} 
function callsus(){ 
    $('#performanceDataGrid').reload(); 
}
Nach dem Login kopieren

Es implementiert eine teilweise Aktualisierung der aufrufenden Seite durch einen JS-Rückruf und hat eine gewisse Orientierungs- und Referenzbedeutung für ähnliche Funktionen in anderen Anwendungen.



Weitere verwandte Artikel, die den js-Rückrufmechanismus verwenden, um eine teilweise Aktualisierung der aufrufenden Seite zu erreichen, finden Sie auf der chinesischen PHP-Website !

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage