{
    "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":"7bb4eb6f-3a85-542c-996a-755e2c2394cc","excerpt":"Обработка переполнения данных объектов client в сценарии!> Существует ограничение на объем хранящихся данных в объектах  и . При превышении лимита текущий…","html":"<h1>Обработка переполнения данных объектов <span class=\"math math-inline\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><semantics><mrow><mi>s</mi><mi>e</mi><mi>s</mi><mi>s</mi><mi>i</mi><mi>o</mi><mi>n</mi><mtext>и</mtext></mrow><annotation encoding=\"application/x-tex\">session и </annotation></semantics></math></span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.65952em;vertical-align:0em;\"></span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">e</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">s</span><span class=\"mord mathnormal\">i</span><span class=\"mord mathnormal\">o</span><span class=\"mord mathnormal\">n</span><span class=\"mord cyrillic_fallback\">и</span></span></span></span></span>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.10.3/docs/ru/JS_API/variables/client\"><code class=\"language-text\">$client</code> — объект для сохранения постоянных данных о клиенте</a>.</li>\n<li><a href=\"/1.10.3/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</br>\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</br>\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/global_scope/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/Content_testing/test_widget/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}