uawdijnntqw1x1x1
IP : 3.144.225.144
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
yar.axolotls.ru
/
bitrix
/
js
/
main
/
core
/
src
/
..
/
core_frame_cache.js
/
/
(function (window) { if (window.BX.frameCache) return; var BX = window.BX; var localStorageKey = "compositeCache"; var lolalStorageTTL = 1440; var compositeMessageIds = ["bitrix_sessid", "USER_ID", "SERVER_TIME", "USER_TZ_OFFSET", "USER_TZ_AUTO"]; var compositeDataFile = "/bitrix/tools/composite_data.php"; var sessidWasUpdated = false; BX.frameCache = function() { }; if (BX.browser.IsIE8()) { BX.frameCache.localStorage = new BX.localStorageIE8(); } else if (typeof(localStorage) !== "undefined") { BX.frameCache.localStorage = new BX.localStorage(); } else { BX.frameCache.localStorage = { set : BX.DoNothing, get : function() { return null; }, remove : BX.DoNothing }; } BX.frameCache.localStorage.prefix = function() { return "bx-"; }; BX.frameCache.init = function() { this.cacheDataBase = null; this.tableParams = { tableName: "composite", fields: [ {name: "id", unique: true}, "content", "hash", "props" ] }; this.frameDataReceived = false; if (BX.type.isString(window.frameDataString) && window.frameDataString.length > 0) { BX.frameCache.onFrameDataReceived(window.frameDataString); } this.vars = window.frameCacheVars ? window.frameCacheVars : { dynamicBlocks: {}, page_url: "", params: {}, storageBlocks: [] }; //local storage warming up var lsCache = BX.frameCache.localStorage.get(localStorageKey) || {}; for (var i = 0; i < compositeMessageIds.length; i++) { var messageId = compositeMessageIds[i]; if (typeof(BX.message[messageId]) != "undefined") { lsCache[messageId] = BX.message[messageId]; } } BX.frameCache.localStorage.set(localStorageKey, lsCache, lolalStorageTTL); BX.addCustomEvent("onBXMessageNotFound", function(mess) { if (BX.util.in_array(mess, compositeMessageIds)) { var cache = BX.frameCache.localStorage.get(localStorageKey); if (cache && typeof(cache[mess]) != "undefined") { BX.message[mess] = cache[mess]; } else { BX.frameCache.getCompositeMessages(); } } }); if (!window.frameUpdateInvoked) { this.update(false); window.frameUpdateInvoked = true; } if (window.frameRequestStart) { BX.ready(function() { BX.onCustomEvent("onCacheDataRequestStart"); BX.frameCache.tryUpdateSessid(); }); } if (window.frameRequestFail) { BX.ready(function() { setTimeout(function() { BX.onCustomEvent("onFrameDataRequestFail", [window.frameRequestFail]); }, 0); }); } BX.frameCache.insertBanner(); }; BX.frameCache.getCompositeMessages = function() { try { BX.ajax({ method: "GET", dataType: "json", url: compositeDataFile, async : false, data: '', onsuccess: function(json) { BX.frameCache.setCompositeVars(json); } }); } catch (exeption) { BX.debug("Composite sync request failed."); } }; BX.frameCache.setCompositeVars = function(vars) { if (!vars) { return; } else if (vars.lang) { vars = vars.lang; } var lsCache = BX.frameCache.localStorage.get(localStorageKey) || {}; for (var name in vars) { if (vars.hasOwnProperty(name)) { BX.message[name] = vars[name]; if (BX.util.in_array(name, compositeMessageIds)) { lsCache[name] = vars[name]; } } } BX.frameCache.localStorage.set(localStorageKey, lsCache, lolalStorageTTL); }; BX.frameCache.insertBlock = function(block, callback) { if (!BX.type.isFunction(callback)) { callback = function() {}; } if (!block) { callback(); return; } var container = null; var dynamicStart = null; var dynamicEnd = null; var autoContainerPrefix = "bxdynamic_"; if (block.ID.substr(0, autoContainerPrefix.length) === autoContainerPrefix) { dynamicStart = BX(block.ID + "_start"); dynamicEnd = BX(block.ID + "_end"); if (!dynamicStart || !dynamicEnd) { BX.debug("Dynamic area " + block.ID + " was not found"); callback(); return; } } else { container = BX(block.ID); if (!container) { BX.debug("Container " + block.ID + " was not found"); callback(); return; } } var htmlWasInserted = false; var scriptsLoaded = false; var assets = getAssets(); processCSS(insertHTML); processStrings(); processExternalJS(processInlineJS); function processCSS(callback) { var styles = assets.styles; if (BX.type.isArray(block.PROPS.CSS) && block.PROPS.CSS.length > 0) { styles = BX.util.array_merge(block.PROPS.CSS, styles); } styles.length > 0 ? BX.load(styles, callback) : callback(); } function insertHTML() { if (container) { if (block.PROPS.USE_ANIMATION) { container.style.opacity = 0; container.innerHTML = block.CONTENT; (new BX.easing({ duration : 1500, start : { opacity: 0 }, finish : { opacity: 100 }, transition : BX.easing.makeEaseOut(BX.easing.transitions.quart), step : function(state){ container.style.opacity = state.opacity / 100; }, complete : function() { container.style.cssText = ''; } })).animate(); } else { container.innerHTML = block.CONTENT; } } else { BX.frameCache.removeNodes(dynamicStart, dynamicEnd); dynamicStart.insertAdjacentHTML("afterEnd", block.CONTENT); } htmlWasInserted = true; if (scriptsLoaded) { processInlineJS(); } } function processStrings() { BX.evalGlobal(assets.inlineJS.join(";")); } function getAssets() { var result = { styles: [], inlineJS: [], externalJS: []}; if (!BX.type.isArray(block.PROPS.STRINGS) || block.PROPS.STRINGS.length < 1) { return result; } var parts = BX.processHTML(block.PROPS.STRINGS.join(""), false); for (var i = 0, l = parts.SCRIPT.length; i < l; i++) { var script = parts.SCRIPT[i]; if (script.isInternal) { result.inlineJS.push(script.JS); } else { result.externalJS.push(script.JS); } } result.styles = parts.STYLE; return result; } function processExternalJS(callback) { var scripts = assets.externalJS; if (BX.type.isArray(block.PROPS.JS) && block.PROPS.JS.length > 0) { scripts = BX.util.array_merge(scripts, block.PROPS.JS); } scripts.length > 0 ? BX.load(scripts, callback) : callback(); } function processInlineJS() { scriptsLoaded = true; if (htmlWasInserted) { BX.ajax.processRequestData(block.CONTENT, {scriptsRunFirst: false, dataType: "HTML"}); if (BX.type.isArray(block.PROPS.BUNDLE_JS)) { BX.setJSList(block.PROPS.BUNDLE_JS); } if (BX.type.isArray(block.PROPS.BUNDLE_CSS)) { BX.setCSSList(block.PROPS.BUNDLE_CSS); } callback(); } } }; BX.frameCache.removeNodes = function(fromElement, toElement) { var startFound = false; var parent = fromElement.parentNode; var nodes = Array.prototype.slice.call(parent.childNodes); for (var i = 0, length = nodes.length; i < length; i++) { if (startFound) { if (nodes[i] === toElement) { break; } else { parent.removeChild(nodes[i]); } } else if (nodes[i] === fromElement) { startFound = true; } } }; BX.frameCache.update = function(makeRequest, noInvoke) { noInvoke = !!noInvoke; makeRequest = typeof(makeRequest) == "undefined" ? true : makeRequest; if (makeRequest) { this.requestData(); } if (!noInvoke) { BX.ready(BX.proxy(function() { if (!this.frameDataReceived) { this.invokeCache(); } }, this)); } }; BX.frameCache.invokeCache = function() { //getting caching dynamic blocks if (this.vars.storageBlocks && this.vars.storageBlocks.length > 0) { BX.onCustomEvent(this, "onCacheInvokeBefore", [this.vars.storageBlocks]); this.readCacheWithID(this.vars.storageBlocks, BX.proxy(this.insertFromCache, this)); } }; BX.frameCache.handleResponse = function(json) { if (json == null) return; BX.onCustomEvent("onFrameDataReceivedBefore", [json]); if (json.dynamicBlocks && json.dynamicBlocks.length > 0)//we have dynamic blocks { this.insertBlocks(json.dynamicBlocks, false); this.writeCache(json.dynamicBlocks); } BX.onCustomEvent("onFrameDataReceived", [json]); if (json.isManifestUpdated == "1" && this.vars.CACHE_MODE === "APPCACHE")//the manifest has been changed { window.applicationCache.update(); } if (json.htmlCacheChanged === true && this.vars.CACHE_MODE === "HTMLCACHE") { BX.onCustomEvent("onHtmlCacheChanged", [json]); } if (BX.type.isArray(json.spread)) { for (var i = 0; i < json.spread.length; i++) { new Image().src = json.spread[i]; } } }; BX.frameCache.requestData = function() { var headers = [ { name: "BX-ACTION-TYPE", value: "get_dynamic" }, { name: "BX-REF", value: document.referrer }, { name: "BX-CACHE-MODE", value: this.vars.CACHE_MODE }, { name: "BX-CACHE-BLOCKS", value: this.vars.dynamicBlocks ? JSON.stringify(this.vars.dynamicBlocks) : "" } ]; if (this.vars.AUTO_UPDATE === false && this.vars.AUTO_UPDATE_TTL && this.vars.AUTO_UPDATE_TTL > 0) { var lastModified = Date.parse(document.lastModified); if (!isNaN(lastModified)) { var now = new Date().getTime(); if ((lastModified + this.vars.AUTO_UPDATE_TTL * 1000) < now) { headers.push({ name: "BX-INVALIDATE-CACHE", value: "Y" }); } } } if (this.vars.CACHE_MODE === "APPCACHE") { headers.push({ name: "BX-APPCACHE-PARAMS", value: JSON.stringify(this.vars.PARAMS) }); headers.push({ name: "BX-APPCACHE-URL", value: this.vars.PAGE_URL ? this.vars.PAGE_URL : "" }); } BX.onCustomEvent("onCacheDataRequestStart"); var requestURI = window.location.href; var index = requestURI.indexOf("#"); if (index > 0) { requestURI = requestURI.substring(0, index); } requestURI += (requestURI.indexOf("?") >= 0 ? "&" : "?") + "bxrand=" + new Date().getTime(); BX.ajax({ timeout: 60, method: "GET", url: requestURI, data: {}, headers: headers, skipBxHeader : true, processData: false, onsuccess: BX.proxy(BX.frameCache.onFrameDataReceived, this), onfailure: function() { var response = { error: true, reason: "bad_response", url : requestURI, xhr: this.xhr, status: this.xhr ? this.xhr.status : 0 }; BX.onCustomEvent("onFrameDataRequestFail", [response]); } }); }; BX.frameCache.onFrameDataReceived = function(response) { var result = null; try { eval("result = " + response); } catch (e) { BX.ready(function() { setTimeout(function() { BX.onCustomEvent("onFrameDataRequestFail", [{ error: true, reason: "bad_eval", response: response }]); }, 0); }); return; } this.frameDataReceived = true; if (result && BX.type.isNotEmptyString(result.redirect_url)) { window.location = result.redirect_url; return; } if (result && result.error === true) { BX.ready(BX.proxy(function() { setTimeout(BX.proxy(function() { BX.onCustomEvent("onFrameDataRequestFail", [result]); }, this), 0); }, this)); return; } BX.frameCache.setCompositeVars(result); BX.ready(BX.proxy(function() { this.handleResponse(result); this.tryUpdateSessid(); }, this)); }; BX.frameCache.insertFromCache = function(resultSet, transaction) { if (!this.frameDataReceived) { var items = resultSet.items; if (items.length > 0) { for (var i = 0; i < items.length; i++) { items[i].PROPS = JSON.parse(items[i].PROPS); } this.insertBlocks(items, true); } BX.onCustomEvent(this, "onCacheInvokeAfter", [this.vars.storageBlocks, resultSet]); } }; BX.frameCache.insertBlocks = function(blocks, fromCache) { var blocksToInsert = new Set(); for (var i = 0; i < blocks.length; i++) { var block = blocks[i]; BX.onCustomEvent("onBeforeDynamicBlockUpdate", [block, fromCache]); if (block.PROPS.AUTO_UPDATE === false) { continue; } blocksToInsert.add(block); } var inserted = 0; var handleBlockInsertion = function() { if (++inserted === blocksToInsert.size) { BX.onCustomEvent("onFrameDataProcessed", [blocks, fromCache]); } }.bind(this); if (blocksToInsert.size === 0) { BX.onCustomEvent("onFrameDataProcessed", [blocks, fromCache]); } else { blocksToInsert.forEach(function(block) { if (block && block.HASH && block.PROPS && block.PROPS.ID) { this.vars.dynamicBlocks[block.PROPS.ID] = block.HASH; } this.insertBlock(block, handleBlockInsertion); }, this); } }; BX.frameCache.writeCache = function(blocks) { for (var i = 0; i < blocks.length; i++) { if (blocks[i].PROPS.USE_BROWSER_STORAGE === true) { this.writeCacheWithID( blocks[i].ID, blocks[i].CONTENT, blocks[i].HASH, JSON.stringify(blocks[i].PROPS) ); } } }; BX.frameCache.openDatabase = function() { var isDatabaseOpened = (this.cacheDataBase != null); if(!isDatabaseOpened) { this.cacheDataBase = new BX.Dexie("composite"); if(this.cacheDataBase != null) { this.cacheDataBase.version(1).stores({ composite: '&ID,CONTENT,HASH,PROPS' }); isDatabaseOpened = true; } } return isDatabaseOpened; }; BX.frameCache.writeCacheWithID = function(id, content, hash, props) { if(BX.frameCache.openDatabase()) { if (typeof props == "object") { props = JSON.stringify(props) } this.cacheDataBase.composite.put({ ID: id, CONTENT: content, HASH: hash, PROPS : props }); } }; BX.frameCache.readCacheWithID = function(id, callback) { if(BX.frameCache.openDatabase()) { this.cacheDataBase.composite .where("ID").anyOf(id).toArray() .then((function(items){ callback({items:items}) }).bind(this)); } else if(typeof callback != "undefined") { callback({items:[]}); } }; BX.frameCache.insertBanner = function() { if (!this.vars.banner || !BX.type.isNotEmptyString(this.vars.banner.text)) { return; } BX.ready(BX.proxy(function() { var banner = BX.create("a", { props : { className : "bx-composite-btn" + ( BX.type.isNotEmptyString(this.vars.banner.style) ? " bx-btn-" + this.vars.banner.style : "" ), href : this.vars.banner.url }, attrs : { target : "_blank" }, text : this.vars.banner.text }); if (BX.type.isNotEmptyString(this.vars.banner.bgcolor)) { banner.style.backgroundColor = this.vars.banner.bgcolor; if (BX.util.in_array(this.vars.banner.bgcolor.toUpperCase(), ["#FFF", "#FFFFFF", "WHITE"])) { BX.addClass(banner, "bx-btn-border"); } } var container = BX("bx-composite-banner"); if (container) { container.appendChild(banner); } else { BX.addClass(banner, "bx-composite-btn-fixed"); document.body.appendChild(BX.create("div", { style : { position: "relative" }, children: [ banner ] })); } }, this)); }; BX.frameCache.tryUpdateSessid = function() { if (sessidWasUpdated) { return; } var name = "bitrix_sessid"; var sessid = false; if (typeof(BX.message[name]) != "undefined") { sessid = BX.message[name]; } else { var cache = BX.frameCache.localStorage.get(localStorageKey) || {}; if (typeof(cache[name]) != "undefined") { sessid = cache[name]; } } if (sessid !== false) { sessidWasUpdated = true; this.updateSessid(sessid); } }; BX.frameCache.updateSessid = function(sessid) { var inputs = document.getElementsByName("sessid"); for (var i = 0; i < inputs.length; i++) { inputs[i].value = sessid; } }; //initialize BX.frameCache.init(); })(window);
/var/www/axolotl/data/www/yar.axolotls.ru/bitrix/js/main/core/src/../core_frame_cache.js