js: Already set `window.name` prior bootstrapping our js runtime
Makes sure that the Window-Id already generated and utilized by the server on the first request is used by subsequent requests instead of a new one. Also avoids that concurrent running id-less requests compete about which one may set his assigned id. Now any subsequent request already transmits the id assigned to the first one. And it resets `window.name` in case the user performs a manual refresh so that the id used by the server is set/utilized. refs #3609
This commit is contained in:
parent
aed2e54834
commit
8212c51f8d
|
@ -85,6 +85,7 @@ $innerLayoutScript = $this->layout()->innerLayout . '.phtml';
|
|||
<script type="text/javascript" src="<?= $this->href($jsfile) ?>"></script>
|
||||
<!--<![endif]-->
|
||||
<script type="text/javascript">
|
||||
window.name = '<?= $this->protectId('Icinga') ?>';
|
||||
var icinga = new Icinga({
|
||||
baseUrl: '<?= $this->baseUrl(); ?>'
|
||||
});
|
||||
|
|
|
@ -696,17 +696,17 @@
|
|||
if (! this.hasWindowId()) {
|
||||
return undefined;
|
||||
}
|
||||
return window.name.match(/^Icinga_([a-zA-Z0-9]+)$/)[1];
|
||||
return window.name.match(/^Icinga-([a-zA-Z0-9]+)$/)[1];
|
||||
},
|
||||
|
||||
hasWindowId: function () {
|
||||
var res = window.name.match(/^Icinga_([a-zA-Z0-9]+)$/);
|
||||
var res = window.name.match(/^Icinga-([a-zA-Z0-9]+)$/);
|
||||
return typeof res === 'object' && null !== res;
|
||||
},
|
||||
|
||||
setWindowId: function (id) {
|
||||
this.icinga.logger.debug('Setting new window id', id);
|
||||
window.name = 'Icinga_' + id;
|
||||
window.name = 'Icinga-' + id;
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
|
|
Loading…
Reference in New Issue