{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/JS_API/overflow_session_client_data/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"3b71c0ff-d605-52d4-bdc1-859f9242b5cb","excerpt":"Обработка переполнения $session и $client в сценарии!> Существует ограничение на объем хранящихся данных в объектах  и . При превышении лимита текущий сценарий…","html":"<h1>Обработка переполнения $session и $client в сценарии</h1>\n<hr>\n<p class='tip'>Существует ограничение на объем хранящихся данных в объектах <code class=\"language-text\">$session</code> и <code class=\"language-text\">$client</code>. При превышении лимита текущий сценарий прерывается, бот перестает отвечать клиенту.</p>\n<ul>\n<li><a href=\"/1.11.7/docs/ru/JS_API/variables/client\"><code class=\"language-text\">$client</code> — объект для сохранения постоянных данных о клиенте</a>.</li>\n<li><a href=\"/1.11.7/docs/ru/JS_API/variables/session\"><code class=\"language-text\">$session</code> — объект для сохранения сессионных данных</a>.</li>\n</ul>\n<p>Для того, чтобы сценарий не прерывался, необходимо обрабатывать переполнение данных объектов <code class=\"language-text\">$session</code> и <code class=\"language-text\">$client</code> в сценарии.</p>\n<h4>Лимиты</h4>\n<p>По умолчанию установлены лимиты:</p>\n<ul>\n<li><code class=\"language-text\">soft</code> 100 Кб;</li>\n<li><code class=\"language-text\">hard</code> 1000 Кб.</li>\n</ul>\n<p class='warn'>Обратите внимание, что лимиты установлены для каждого объекта. Таким образом для данных объекта <code class=\"language-text\">$client</code> по <code class=\"language-text\">soft</code> лимиту доступно 100 Кб, для данных объекта <code class=\"language-text\">$session</code> также доступно 100 Кб.</p>\n<h4>Обработка переполнения</h4>\n<p>Если достигнут <code class=\"language-text\">soft</code> лимит, но при этом не превышен <code class=\"language-text\">hard</code> лимит, данные в объекты <code class=\"language-text\">$session</code> и <code class=\"language-text\">$client</code> будут сохраняться. При этом в сценарий приходят события о достижении <code class=\"language-text\">soft</code> лимита <code class=\"language-text\">event: sessionDataSoftLimitExceeded</code> и <code class=\"language-text\">event: clientDataSoftLimitExceeded</code>.</p>\n<p>Если новые данные превышают <code class=\"language-text\">hard</code> лимит, то эти данные не сохраняются в объекты <code class=\"language-text\">$session</code> и <code class=\"language-text\">$client</code>. При этом в сценарий приходят события о достижении <code class=\"language-text\">hard</code> лимита <code class=\"language-text\">event: sessionDataHardLimitExceeded</code> и <code class=\"language-text\">event: clientDataHardLimitExceeded</code>.</p>\n<p>Пример обработки переполнения данных в сценарии:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">theme:</span> /\r\n\r\n    <span class=\"token keyword\">state:</span>\r\n        <span class=\"token storageType\">q:</span> * *start\r\n        <span class=\"token variableParameter\">go!:</span> /start\r\n\r\n    <span class=\"token keyword\">state:</span> start\r\n        <span class=\"token storageType\">q!:</span> *\r\n        <span class=\"token variableParameter\">script:</span>\r\n            $session.text = $parseTree.text    <span class=\"token comment\">// сохраняем данные сессии</span>\r\n        <span class=\"token variableParameter\">a:</span> Вы сказали: <span class=\"token constantCharacter\">{{$parseTree.text}}</span>.\r\n\r\n    <span class=\"token keyword\">state:</span>\r\n        <span class=\"token storageType\">event:</span> sessionDataSoftLimitExceeded    <span class=\"token comment\">// обрабатываем событие о достижении soft лимита</span>\r\n        <span class=\"token variableParameter\">script:</span>\r\n            delete session.text;               <span class=\"token comment\">// при достижении soft лимита сессионные данные удаляются</span></code></pre></div>","frontmatter":{"title":"","description":null},"headings":[{"value":"Обработка переполнения $session и $client в сценарии"}]}},"pageContext":{"slug":"/docs/ru/JS_API/overflow_session_client_data/","previous":{"fields":{"slug":"/docs/ru/JS_API/preload_js/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/JS_API/about_jsapi/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}