· Jan 23

Cache ZEN Issues with MS Edge

Dear Fellow Cache Developers and Cache Experts,

The company I work for has a Cache Web Application that is built on the Cache ZEN framework.  The application has run very well for almost 2 decades across many versions of MS Internet Explorer ranging from IE5 all the way through IE11.   

However, when Microsoft finally phased out support for IE11, our company was forced to upgrade to MS Edge.  While many of the old Cache ZEN features still work well, there are several, four specific scenarios listed below, that do not work as expected with MS Edge.  All of those Cache ZEN features worked perfectly in IE11.   So as a short-term solution, the company I work for is running MS Edge in IE11 compatibility mode.   And while that allows our application to work like it used to, we have other technologies and reasons for why we want to stop using IE11 compatibility mode and run MS Edge in native mode.   But if we do that, then we have all the Cache Web Application related issues outlined below to deal with/find a solution for.   The reason our web application is using MS Edge is because that is the company/enterprise mandated web browser that all application teams must use.   So using a different web browser is out of the question.   One other note is that our Cache ZEN Web Application is HUGE (thousands of resources) with hundreds of pages and dialogs.  So hopefully any solutions would not require redesign of the entire application.

All of that being said, outlined below are the four main challenges we are having with Cache ZEN running with MS Edge.   If anyone has any ideas, suggestions, or thoughts for how to deal with any or all of the issues itemized below, I sincerely appreciate your feedback.

Much thanks in advance to all my fellow Cache Developers and Cache Experts out there.  

Summary of issues with Cache ZEN/MS Edge:

  • Our Cache ZEN web application was originally built on the foundation that all dialog windows must be modal, so the user cannot interact with the underlying pages until the popup window is closed.  And our web application has code that must execute after the dialog popup window is closed (never before).  Our application has been using a custom version of the Cache 2009/2013 old zenLaunchPopupWindow code (we named our custom version qCustomLaunchPopupWindow).  And that has worked wonderful for almost 2 decades through all the various versions of MS IE* web browsers.   But it appears that with MS Edge, things no longer work the same, as that old custom code now opens the popup dialog windows as non-Modal.   The WRC recommendation at the time was to replace our qCustomLaunchPopupWindow call with a call to the newer Cache 2017 version of zenLaunchPopupWindow (via zenPage.launchPopupWindow);   so we followed that recommendation.   But after making the change and doing some testing, we realized that while that newer method does launch the popup as modal, there is a negative ripple effect by which the code that launches the popup is not truly modal and as soon as the popup window appears, all code after the popup call is immediately executed instead of synchronously waiting for that popup window to close before calling any code that follows the call to zenPage.launchPopupWindow.   This is the first issue that needs to be resolved.


  • The Cache ZEN framework does not seem to be consistent with how the onunloadhandler processing works for and %ZEN.Dialog.standardDialog.   For ZEN pages that extend from the standardDialog, there are multiple issues with the onunloadhandler processing.  it appears that the onunloadhandler processing is either not getting called or is called but not calling to Zen class methods – this was verified by trying to do a global set from a method that got called from within the onunloadhandler of a standardDialog page and the global was never set.   This might be a combination issue across Cache ZEN and MS Edge, because the code does work with IE11 – at least when using the old qCustomLaunchPopupWindow call.   This is the second issue that needs to be resolved.


  • The alert(); is not working in the onunloadhandler processing.   Our web application displays either informational or error messages via alerts() from the onunloadhandler processing.  There are a variety of reasons for the code, some to display an error or warning message to the user about application processing failures just prior to the page closing, or even as fancy as calling another Cache page to prompt the user for additional data before the page closes, to dealing with unlocks, application audit information, etc....  This might be a combination issue across Cache ZEN and MS Edge, because the code does work with IE11.   This is the third issue that needs to be resolved.


  • There also appears to be an issue with the onunloadhandler by which the dialog window is not getting closed for the scenario where the dialog window calls another standardDialog window from the onunloadhandler, to capture some final information from the user before the primary dialog window closes.   The secondary dialog popup window is called, but when it closes, the primary dialog window remains open – even though it was in the process of closing before the secondary window was called from the primary dialog window onunloadhandler.   This might be a combination issue across Cache ZEN and MS Edge, because the code does work with IE11 – at least when using the old qCustomLaunchPopupWindow call.   This is the fourth issue that needs to be resolved.
Product version: Caché 2017.1
$ZV: Cache for OpenVMS/IA64 V8.4 (Itanium) 2017.1.3 (Build 317_5_19311) 4-OCT-2019 16:58:00.21
Discussion (0)2
Log in or sign up to continue