RU2691834C1 - Method of managing web site data - Google Patents
Method of managing web site data Download PDFInfo
- Publication number
- RU2691834C1 RU2691834C1 RU2018125461A RU2018125461A RU2691834C1 RU 2691834 C1 RU2691834 C1 RU 2691834C1 RU 2018125461 A RU2018125461 A RU 2018125461A RU 2018125461 A RU2018125461 A RU 2018125461A RU 2691834 C1 RU2691834 C1 RU 2691834C1
- Authority
- RU
- Russia
- Prior art keywords
- web page
- data
- dynamic
- volatile memory
- request
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000003068 static effect Effects 0.000 claims abstract description 23
- 238000004364 calculation method Methods 0.000 claims abstract description 21
- 230000008859 change Effects 0.000 claims description 11
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000000694 effects Effects 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 238000012795 verification Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001667 episodic effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD
[001] Данное техническое решение, в общем, относится к вычислительной области техники, а в частности к способам управления данными веб-сайта.[001] This technical solution, in general, relates to the computing field of technology, and in particular to methods for managing website data.
УРОВЕНЬ ТЕХНИКИBACKGROUND
[002] В настоящее время активное развитие сети Интернет в последние десятилетия привело к быстрому росту технических решений, позволяющих упростить разработку и создание веб-сайтов. На рынке стали появляться не только новые языки веб-программирования, но и готовые наборы инструментов для быстрого создания веб-сайтов. Такой набор инструментов называется Content management system (далее - "CMS"). Назначение такой системы - дать возможность разработчику (веб-программисту) как можно проще и быстрее создать сайт, после чего останется только наполнить его контентом.[002] Currently, the active development of the Internet in recent decades has led to a rapid growth of technical solutions that simplify the development and creation of websites. Not only new web programming languages began to appear on the market, but also ready-made sets of tools for quickly creating websites. This set of tools is called Content management system (hereinafter - "CMS"). The purpose of such a system is to enable the developer (web programmer) to create a website as quickly and easily as possible, after which it remains only to fill it with content.
[003] Рынок Интернета развивается стремительно и как следствие, потребности посетителей веб-сайтов также растут. Сайты стали сложнее не только по функциональным возможностям, но и по дизайну - появились адаптивные версии верстки под планшетные устройства, мобильные телефоны, широкоформатные мониторы. Повышение сложности сайтов напрямую повлияло на развитие CMS - появилась необходимость разделения систем по направлениям, с различными наборами инструментов.[003] The Internet market is developing rapidly and as a result, the needs of website visitors are also growing. Sites have become more complicated not only in functionality, but also in design - adaptive versions of the layout for tablet devices, mobile phones, widescreen monitors have appeared. Increasing the complexity of the sites directly influenced the development of CMS - there was a need to separate systems in areas with different sets of tools.
[004] Наличие подробной технической документации системы упрощает процесс веб-разработки, но сама CMS без дополнительных инструментов не так быстро эволюционирует, как подключаемые к ней инструменты. Любые серьезные изменения основного программного кода CMS могут повлиять на работоспособность всех инструментов, которые были установлены на сайтах до изменений. Получается, при изменении ядра CMS (например, оптимизация, которая немного уменьшает нагрузку на веб-сервер или экономит место в памяти) необходимо обеспечить полную совместимость всех существующих к нему инструментов, в том числе написанных сторонними разработчиками. Это трудозатратно, если, например, изменения в ядре были связаны с архитектурой. Поэтому изменять работу ядра CMS просто не выгодно. Поэтому новые инструменты и технологии, которые появлялись уже после начала эксплуатации какой-либо системы, подключались к ней как наборы инструментов и не входили в состав ядра.[004] The availability of detailed technical documentation of the system simplifies the web development process, but the CMS itself without additional tools does not evolve as quickly as the tools connected to it. Any major changes to the main CMS code may affect the performance of all the tools that were installed on the sites before the changes. It turns out that when changing the CMS core (for example, optimization, which slightly reduces the load on the web server or saves memory space), it is necessary to ensure full compatibility of all the existing tools for it, including those written by third-party developers. It is labor-intensive if, for example, changes in the core were related to architecture. Therefore, changing the work of the CMS core is simply not profitable. Therefore, new tools and technologies that appeared after the start of operation of any system were connected to it as toolkits and were not part of the core.
[005] Примером такого инструмента является Memcached, который обеспечивает кэширование в оперативную память. Основное назначение этого инструмента - по ключу положить данные в память и быстро их вернуть по соответствующему запросу. В настоящее время этот инструмент нашел свое применение в ядре многих крупных проектов, например, Wikipedia, YouTube, Facebook и другие.[005] An example of such a tool is Memcached, which provides in-memory caching. The main purpose of this tool is to key data into memory and quickly return it on request. Currently, this tool has found its application in the core of many large projects, for example, Wikipedia, YouTube, Facebook and others.
[006] Аналогичным инструментом является Redis, который имеет расширенный функционал: поддерживает сложные типы данных (например, списки), поддерживает высокоуровневые операции (например, сортировка), имеет встроенную поддержку репликации данных на другие сервера с целью защитить данные и повысить скорость записи/чтения данных при нагрузке.[006] A similar tool is Redis, which has advanced functionality: supports complex data types (for example, lists), supports high-level operations (for example, sorting), has built-in support for replicating data to other servers in order to protect data and improve write / read speed data under load.
[007] Существенным минусом Memcached и Redis является необходимость отслеживать актуальность данных и хранить информацию о ключах, по которым данные можно получить. При существенном масштабировании сайта это сильно усложняет сам процесс веб-разработки страниц.[007] A significant disadvantage of Memcached and Redis is the need to keep track of the relevance of the data and store information about the keys by which data can be obtained. With a significant scaling of the site, this greatly complicates the process of web page development itself.
[008] Из уровня техники известен патент США № US 8924411 B2 "System and method for the dynamic provisioning of static content", патентообладатель: Open Text SA, опубликовано: 31.05.2005.[008] From the level of technology known US patent No. US 8924411 B2 "System and method for the dynamic provisioning of static content", patentee: Open Text SA, published: 05/31/2005.
[009] Ближайшим аналогом может быть признано техническое решение, в котором раскрываются варианты осуществления системы и способа для динамического предоставления статического контента. В одном варианте осуществления информация, представленная в системе доставки контента, может быть обновлена на основе информации, опубликованной в системе управления контентом (CMS). Один вариант осуществления может взаимодействовать с системой доставки контента и системой управления контентом на уровне страницы. Более конкретно, зависимости контента на страницах, использующих один и тот же контент или часть (и), могут своевременно отслеживаться. После получения уведомления об изменении содержимого или его части из системы управления контентом система генерации контента может определять на основе зависимостей, на какие страницы влияет изменение, и на основе данного определения динамически генерировать обновленные данные на всех затронутых страницах. Затем обновленные страницы могут быть сохранены и/или перенесены на веб-уровень для доставки конечным пользователям.[009] The closest analogue may be considered a technical solution, which discloses embodiments of a system and method for dynamically providing static content. In one embodiment, the information provided in the content delivery system may be updated based on information published in the content management system (CMS). One embodiment may interact with a content delivery system and a page level content management system. More specifically, content dependencies on pages that use the same content or part (s) can be tracked in a timely manner. After receiving notification of a change in content or part of it from a content management system, the content generation system can determine, based on dependencies, which pages are affected by the change, and based on this definition, dynamically generate updated data on all affected pages. The updated pages can then be saved and / or transferred to the web tier for delivery to end users.
[0010] В данном изобретении основным принципом является поддержание актуальности частей страниц посредством отслеживания изменения данных и обновлении ранее сохраненных частей страниц в энергонезависимой памяти. Недостатком является то, что вопрос ускорения первичной генерации страниц, еще не откэшированных не решается.[0010] In this invention, the basic principle is to maintain the relevance of parts of the pages by tracking data changes and updating previously stored parts of the pages in non-volatile memory. The disadvantage is that the issue of accelerating the primary generation of pages that are not yet cached is not solved.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF INVENTION
[0011] Данное техническое решение направлено на устранение недостатков, свойственных решениям, известным из уровня техники.[0011] This technical solution is aimed at eliminating the disadvantages inherent in the solutions known from the prior art.
[0012] Технической задачей или проблемой, решаемой в данном техническом решении, является обработка и управление динамическими и статическими данными веб-сайта.[0012] A technical problem or problem solved in this technical solution is the processing and management of dynamic and static data of a website.
[0013] Техническим результатом, проявляющимся при решении вышеуказанной технической задачи, является повышение скорости обработки и управления данными веб-сайта.[0013] The technical result, which manifests itself in solving the above technical problem, is to increase the speed of processing and managing website data.
[0014] Дополнительным техническим результатом является рациональное использование оперативной памяти за счет отсутствия хранения избыточных данных. Динамические части разных веб-страниц могут пользоваться одним и тем же кэшем. Причем, для каждой динамической части могут быть заданы условия, в зависимости от которых он меняет результат своего вычисления (далее - состояние динамической части). Кэширование происходит только при изменении данных, что позволяет избежать дублей данных.[0014] An additional technical result is the rational use of RAM due to the lack of storage of redundant data. Dynamic parts of different web pages can use the same cache. Moreover, for each dynamic part conditions can be set, depending on which he changes the result of his calculation (hereinafter - the state of the dynamic part). Caching occurs only when data changes, thus avoiding duplicate data.
[0015] Указанный технический результат достигается благодаря осуществлению способа управления данными веб-сайта, в котором формируют по меньшей мере одну статическую часть веб-страницы, и по меньшей мере одну динамическую часть веб-страницы, которые хранятся в энергонезависимой памяти; далее получают от по меньшей мере одного пользователя запрос к веб-сайту; затем проверяют наличие файла кэша в энергонезависимой памяти для каждой динамической части веб-страницы полученного на предыдущем шаге запроса, причем при наличии файла кэша в энергонезависимой памяти загружают его содержимое в динамическую часть веб-страницы; при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к веб-серверу, причем для вычисления предварительно получают данные из оперативной памяти, в случае их наличия; иначе получают данные из энергонезависимой памяти.[0015] This technical result is achieved due to the implementation of a method for managing website data in which at least one static part of a web page is formed and at least one dynamic part of a web page that is stored in non-volatile memory; then get a request to the website from at least one user; then check the presence of the cache file in the non-volatile memory for each dynamic part of the web page obtained at the previous step of the request, and if there is a cache file in the non-volatile memory, load its contents into the dynamic part of the web page; in the absence of a cache file in the non-volatile memory during the test, the dynamic part of the web page is calculated on the basis of a request to the web server, and the data from the main memory, if available, is first obtained for the calculation; otherwise, get data from non-volatile memory.
[0016] В некоторых вариантах реализации изобретения запрос имеет тип POST или GET.[0016] In some embodiments of the invention, the request is of type POST or GET.
[0017] В некоторых вариантах реализации изобретения запрос содержит ссылку на веб-сайт с параметрами.[0017] In some embodiments of the invention, the request contains a link to a website with parameters.
[0018] В некоторых вариантах реализации изобретения при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к вебсерверу, причем при изменении данных модифицируют их сначала в энергонезависимой памяти, а потом в оперативной.[0018] In some embodiments of the invention, in the absence of a cache file in the non-volatile memory, the dynamic part of the web page is calculated during the check based on the request to the web server, and when the data is modified, they are modified first in the non-volatile memory and then in the operational one.
[0019] В некоторых вариантах реализации изобретения при отсутствии файла кэша в энергонезависимой памяти во время проверки осуществляют вычисление динамической части веб-страницы на основании запроса к вебсерверу, причем при изменении данных модифицируют их сначала в оперативной памяти, а потом в энергонезависимой.[0019] In some embodiments of the invention, in the absence of a cache file in the non-volatile memory, the dynamic part of the web page is calculated during the check based on the request to the web server, and when the data is modified, they are modified first in the RAM and then in the non-volatile.
[0020] В некоторых вариантах реализации изобретения изменением данных является создание или обновление, или удаление.[0020] In some embodiments of the invention, a change in data is the creation or update, or deletion.
[0021] В некоторых вариантах реализации изобретения при изменении данных, которые использовались при вычислении динамических частей, удаляют файлы кэша этих динамических частей.[0021] In some embodiments of the invention, when the data that was used in the calculation of dynamic parts is changed, the cache files of these dynamic parts are deleted.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[0022] Признаки и преимущества настоящего технического решения станут очевидными из приведенного ниже подробного описания и прилагаемых чертежей, на которых:[0022] The features and advantages of this technical solution will become apparent from the following detailed description and the accompanying drawings, in which:
[0023] На Фиг. 1 показан пример реализации первичной загрузки веб-сайта.[0023] FIG. 1 shows an example of the implementation of the initial loading of the web site.
[0024] На Фиг. 2 показан пример реализации обработки запроса к веб-серверу на веб-сайте;[0024] FIG. 2 shows an example implementation of processing a request to a web server on a web site;
[0025] На Фиг. 3 показан процесс формирования кэша динамических блоков.[0025] FIG. 3 shows the process of forming a dynamic block cache.
[0026] На Фиг. 4 показан пример реализации управления данными веб-сайта в виде блок-схемы.[0026] FIG. 4 shows an example implementation of managing website data in a flowchart.
[0027] На Фиг. 5 показан вариант реализации вычисления динамической части веб-страницы.[0027] FIG. 5 shows an embodiment for calculating a dynamic portion of a web page.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION
[0028] Данное техническое решение может быть реализовано на компьютере или другом устройстве обработки данных в виде автоматизированной системы или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[0028] This technical solution can be implemented on a computer or other data processing device in the form of an automated system or computer-readable media containing instructions for performing the above method.
[0029] Техническое решение может быть реализовано в виде распределенной компьютерной системы, компоненты которой являются облачными или локальными серверами.[0029] The technical solution may be implemented as a distributed computer system, the components of which are cloud or local servers.
[0030] В данном решении под системой подразумевается компьютерная система или автоматизированная система (АС), ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированная система управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).[0030] In this solution, a system means a computer system or an automated system (AC), a computer (electronic computer), a CNC (numerical control), a PLC (programmable logic controller), a computerized control system, and any other devices capable of a given, well-defined sequence of computational operations (actions, instructions).
[0031] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[0031] A command processing device is an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).
[0032] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы, облачные хранилища данных.[0032] The command processing device reads and executes machine instructions (programs) from one or more data storage devices. In the role of storage devices can act, but not limited to, hard drives (HDD), flash memory, ROM (read-only memory), solid-state drives (SSD), optical drives, cloud storage.
[0033] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[0033] Program - a sequence of instructions intended for execution by a computer control device or command processing device.
[0034] Веб-страница (англ. Web-page) - компонент веб-сайта, файл, размещенный на сервере [ГОСТ Р 52872-2012].[0034] A web page (English Web-page) is a component of a website, a file hosted on the server [GOST R 52872-2012].
[0035] Кэш (англ. (memory) cache - запас памяти) - область памяти, которая служит для буфера обмена, как правило имеет большую скорость, чем основная память.[0035] Cache (English (memory) cache - memory) is a memory area that serves as a clipboard, usually has a higher speed than the main memory.
[0036] Content Management System (система управления контентом, сокр. CMS) - информационная система для обеспечения и организации совместного процесса создания, редактирования и управления контентом.[0036] Content Management System (content management system, abbr. CMS) is an information system for providing and organizing a joint process of creating, editing and managing content.
[0037] Оперативная память (также оперативное запоминающее устройство, ОЗУ, англ. RAM) - память, часть системы памяти ЭВМ, в которую процессор может обратиться за одну операцию (jump, move и т.п.). Предназначена для временного хранения данных и команд, необходимых процессору для выполнения операций. Оперативная память передает процессору данные непосредственно, либо через кэш-память.[0037] Random access memory (also random access memory, RAM, eng. RAM) is a memory, part of the computer memory system, to which the processor can turn for one operation (jump, move, etc.). It is intended for temporary storage of data and commands required by the processor to perform operations. RAM transfers data to the processor directly, or through a cache memory.
[0038] Вариант реализации первичной загрузки веб-страницы показан на Фиг. 1 в виде блок-схемы.[0038] A variant of the implementation of the initial loading of a web page is shown in FIG. 1 in the form of a flowchart.
[0039] Способ управления данными веб-сайта может быть реализован последовательностью вычислительных шагов как это показано в виде блок-схемы на Фиг. 4.[0039] A method for managing website data may be implemented by a series of computational steps as shown in the flowchart of FIG. four.
[0040] Шаг 410: формируют по меньшей мере одну статическую часть вебстраницы, и по меньшей мере одну динамическую часть веб-страницы, которые хранятся в энергонезависимой памяти.[0040] Step 410: At least one static part of the web page is formed, and at least one dynamic part of the web page is stored in non-volatile memory.
[0041] Предварительно получают запрос от пользователя, который осуществляет действие на веб-сайте.[0041] Pre-receive a request from a user who performs an action on a website.
[0042] Для того, чтобы максимально эффективно использовать энергонезависимую память для хранения вычисленных страниц, статическую часть веб-страницы, которая не меняется, хранят отдельно от динамических частей, которые зависят от параметров загрузки. Отдельное хранение динамических частей от статических позволяет их использовать повторно на разных страницах, экономя память и вычислительные мощности. В статической части веб-страницы представлена статическая, постоянная и не изменяющаяся информация. Изменить ее можно, но для этого необходимо внести соответствующие корректировки в программный код веб-страницы. Обычно файл статической части веб-страницы имеет HTML-формат. Веб-разработчик пишет HTML-код разметки, формируя при этом информационное наполнение сайта, после чего файлу присваивается имя, а затем страница загружается на веб-сервер и становится доступной пользователям Интернета. Например, на корпоративном сайте статическая часть веб-страницы может содержать сведения об истории компании, основных направлениях ее деятельности и т.п. В некоторых вариантах реализации веб-сервер при выдаче веб-страниц на оборудование пользователя осуществляет проверку того, изменилась или нет статическая часть страницы. Дело в том, что статические части страницы тоже иногда могут меняться. Эти изменения происходят гораздо реже, чем в случае динамических частей. Они носят не систематический, а эпизодический характер и связаны, как правило, с обновлением стиля сайта его создателями. Например, разработчик сайта решил заменить какую-либо картинку на странице или просто поменял фон всего сайта. Для более корректной работы предложенных способа и системы, целесообразно отслеживать указанные изменения статической части страниц и вносить соответствующие им поправки. В этих целях принято использовать механизм контрольных сумм, работающий по следующему принципу. Определяется контрольная сумма статической части и сохраняется в запоминающем устройстве в служебных данных кэша. При повторном заходе пользователя на страницу, при выполнении ее динамической части, заново вычисляется контрольная сумма обновленной страницы и сравнивается со старой суммой. Если они не совпали, то сервер делает вывод, что статическая часть страницы устарела и в кэш перезаписывается новая страница. Таким образом система автоматически, без участия человека отслеживает подобные изменения в статической части.[0042] In order to maximize the use of non-volatile memory for storing the calculated pages, the static part of the web page, which does not change, is stored separately from the dynamic parts that depend on the loading parameters. Separate storage of dynamic parts from static parts allows reusing them on different pages, saving memory and computational power. The static part of the web page contains static, permanent and unchanging information. You can change it, but for this you need to make appropriate adjustments to the program code of the web page. Usually, the file of the static part of the web page is in HTML format. The web developer writes the HTML markup code, forming the content of the site, after which the file is given a name, and then the page is loaded onto the web server and becomes accessible to Internet users. For example, on a corporate website, the static part of a web page may contain information about the history of the company, its main areas of activity, etc. In some embodiments, the web server, when issuing web pages to the user equipment, checks whether the static portion of the page has changed or not. The fact is that the static parts of the page can also sometimes change. These changes occur much less frequently than in the case of dynamic parts. They are not systematic, but episodic in nature and are usually associated with updating the style of the site by its creators. For example, the site developer decided to replace any image on the page or simply changed the background of the entire site. For a more correct operation of the proposed method and system, it is advisable to monitor these changes to the static part of the pages and make the appropriate amendments. For this purpose, it is customary to use the checksum mechanism, which operates according to the following principle. The checksum of the static part is determined and stored in the memory in the cache overhead. When the user re-enters the page, when its dynamic part is executed, the checksum of the updated page is re-calculated and compared with the old amount. If they do not match, the server concludes that the static part of the page is outdated and the new page is overwritten in the cache. Thus, the system automatically, without human intervention, tracks such changes in the static part.
[0043] В некоторых вариантах реализации изобретения может использоваться кэш микропроцессора - сверхоперативная память, используемая микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Кэш использует небольшую, очень быструю память (обычно типа SRAM), которая хранит копии часто используемых данных из основной памяти.[0043] In some embodiments of the invention, a microprocessor cache may be used — a super RAM, used by a computer microprocessor to reduce the average access time to computer memory. The cache uses small, very fast memory (usually SRAM type), which stores copies of frequently used data from main memory.
[0044] В некоторых вариантах реализации изобретения может использоваться память графического процессора (GPU).[0044] In some embodiments of the invention, graphics memory (GPU) memory may be used.
[0045] Принципиальное отличие динамической части веб-страницы от статической состоит в том, что ее содержимое является не постоянным, а может изменяться. Содержимое формируется в зависимости от пожеланий пользователя, а точнее - на основании запросов, созданных посетителями и отправленных на веб-сервер. Наиболее типичный пример динамической части веб-сайта - это страница с результатами поиска, выданными поисковой системой (например, www.google.ru) на основании отправленного пользователем поискового запроса. Другим примером реализации динамической части веб-страницы является интернет-магазин, где посетитель с помощью опций указывает, какой товар и с какими свойствами его интересует, отправляет запрос (для этого обычно предназначена соответствующая кнопка), и через пару секунд получает на экран графического интерфейса пользователя перечень товаров, соответствующих установленным им критериям.[0045] The fundamental difference between the dynamic part of the web page and the static part is that its content is not constant, but may change. Content is formed depending on the wishes of the user, or rather, on the basis of requests created by visitors and sent to the web server. The most typical example of a dynamic part of a website is a page with search results issued by a search engine (for example, www.google.com) based on a search query sent by a user. Another example of the implementation of the dynamic part of a web page is an online store, where a visitor using options indicates which product interests him with what properties, sends a request (the corresponding button is usually intended for this), and after a couple of seconds gets the GUI screen list of goods that meet their criteria.
[0046] Результат вычисления динамических частей на веб-странице может меняться на основании заранее заданного набора параметров загрузки, которые включат параметры запроса и уникальный текстовый идентификатор, которые указаны ниже.[0046] The result of calculating the dynamic parts on the web page may vary based on a predetermined set of loading parameters that include the request parameters and the unique text identifier that are listed below.
[0047] В общем случае, этап обнаружения в HTML-коде веб-страницы кода, относящегося к динамическим частям, выполняется веб-сервером путем анализа ее HTML-кода при помощи соответствующего распознающего программного модуля. При этом согласно предпочтительному варианту изобретения, обнаружение динамических частей происходит по специальным указаниям, расставленным в коде страницы разработчиками сайта. Например, установленная на веб-сервере CMS-система анализирует код веб-страницы при сохранении ее на сервер. Если CMS-система встречает установленные разработчиком сайта программные указания, то система заменяет их на собственные метки, по которым она впоследствии определяет места замены устаревших данных на актуальные. В этом случае этапы обнаружения динамических частей и их замены JS-скриптом протекают наиболее быстро, что дает дополнительный выигрыш в скорости при отображении веб-страницы.[0047] In general, the step of detecting the code for the dynamic parts in the HTML code of a web page is performed by the web server by analyzing its HTML code using an appropriate recognition software module. In this case, according to a preferred variant of the invention, the detection of dynamic parts occurs according to special instructions placed in the page code by the developers of the site. For example, a CMS installed on a web server analyzes the code of a web page while saving it to the server. If the CMS-system meets the program instructions set by the developer of the site, the system replaces them with its own labels, by which it subsequently determines the places for replacing outdated data with actual ones. In this case, the steps of detecting dynamic parts and replacing them with a JS script occur most quickly, which gives an additional speed advantage when displaying a web page.
[0048] Хранимые на веб-сервере веб-страницы могут быть созданы с использованием компонентов с шаблонами CMS-системы или других модификаторов вывода. Как вариант, код страниц может быть написан программистом на языке низкого уровня, без использования CMS системы и другого подобного программного обеспечения, управляющего контентом веб-страницы.[0048] The web pages stored on the web server can be created using components with CMS system templates or other output modifiers. Alternatively, the code of the pages can be written by a programmer in a low-level language, without using a CMS system and other similar software that manages the content of a web page.
[0049] В данном техническом решении под веб-сервером понимается программно-аппаратный комплекс, доступный пользователю через Интернет и выполненный с возможностью приема HTTP-запросов пользователей, обычно от веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. В качестве конкретных примеров веб-сервера можно назвать HTTP-серверы Apache, US, Cherokee и Resin на базе операционных систем Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS, не ограничиваясь. Неисчерпывающий список функций стандартного веб-сервера включает в себя следующее:[0049] In this technical solution, a web server is a software and hardware complex that is accessible to the user via the Internet and is capable of receiving HTTP requests from users, usually from web browsers, and issuing HTTP responses to them, usually with HTML -page, image, file, media stream or other data. As specific examples of a web server, you can name HTTP servers Apache, US, Cherokee and Resin based on operating systems Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS, without being limited to. The non-exhaustive list of standard web server features includes the following:
[0050] - Прием запросов от веб-браузеров по протоколу стандарта HTTP с использованием сетевых протоколов TCP/IP;[0050] - Receive requests from web browsers using the HTTP standard protocol using the TCP / IP network protocols;
[0051] - Выполнение поиска и отсылки файлов с гипертекстом или каких-либо документов в браузер по протоколу HTTP;[0051] - Performs searching and sending hypertext files or any documents to the browser using the HTTP protocol;
[0052] - Обслуживание и обработка запросов, типа: mailto: …, FTP, Telnet и т.п.;[0052] - Service and processing requests, such as: mailto: ..., FTP, Telnet, etc .;
[0053] - Запуск прикладных программ на веб-сервере с последующей передачей и возвратом параметров обработки через стандарт интерфейса CGI;[0053] - Run application programs on a web server with the subsequent transfer and return of processing parameters via the CGI interface standard;
[0054] - Работа и обслуживание навигационных карт изображений (Image map);[0054] - Operation and maintenance of navigation image maps (Image map);
[0055] - Загрузка Javascript-приложений;[0055] - Download Javascript applications;
[0056] - Авторизация пользователей и их аутентификация;[0056] - Authorization of users and their authentication;
[0057] - Ведение регистрационного журнала обращений пользователей к различным ресурсам;[0057] - Maintaining a log of user access to various resources;
[0058] - Автоматизированная работа веб-страниц;[0058] - Automated operation of web pages;
[0059] - Поддержка страниц, которые генерируются динамически;[0059] - Support for pages that are dynamically generated;
[0060] - Поддержка работы протокола HTTPS для защищенных соединений с клиентами. Шаг 420: получают от по меньшей мере одного пользователя запрос к веб-сайту.[0060] - Support for the operation of the HTTPS protocol for secure connections to clients. Step 420: A request to a website is received from at least one user.
[0061] Итак, браузер оборудования пользователя, например, мобильного устройства связи, посылает клиентский запрос на веб-сервер с адресом вебстраницы для, например, покупки выбранного пользователем товара для покупки в интернет-магазине. Веб-сервер, получив запрос на веб-страницу, предпринимает действия по сборке HTML-кода этой страницы, в ходе которой выполняется следующее:[0061] So, the user's equipment browser, for example, a mobile communication device, sends a client request to a web server with a web page address, for example, buying a product selected by a user for purchase in an online store. The web server, upon receiving a request for a web page, takes steps to assemble the HTML code of this page, during which the following is done:
[0062] - выполнение программного кода динамических частей, относящегося к расчету корзины для данного пользователя, выводу телефона и времени работы пункта доставки и цены товара. Данный этап может проводиться с учетом проверки статуса и прав доступа пользователя, а также других возможных условий формирования веб-страницы, и включает в себя выборку необходимых данных из баз данных, относящихся к клиентам, ценам и ассортименту, фильтрацию и сортировку этих данных и прочие действия, необходимые для формирования HTML-кода динамических частей. В качестве программного кода обычно используется PHP-код, но может также выступать Perl, ASP, JSP и пр. Результатом этапа выполнения программного кода динамических частей является получение HTML-кода, соответствующего указанным динамическим частям;[0062] - execution of the program code of the dynamic parts related to the calculation of the basket for the user, the output of the phone and the operating time of the delivery point and the price of the goods. This stage can be carried out taking into account the status and access rights of the user, as well as other possible conditions for the formation of a web page, and includes sampling the necessary data from databases related to customers, prices and assortment, filtering and sorting these data and other actions required to form HTML code for dynamic parts. PHP code is usually used as a program code, but it can also be Perl, ASP, JSP, etc. The result of the step of executing the program code of the dynamic parts is to obtain the HTML code corresponding to the specified dynamic parts;
[0063] - формирование HTML-кода веб-страницы, включающего HTML-код статической части и HTML-код динамических частей, полученный на предыдущем этапе путем выполнения их программного кода;[0063] - the formation of the HTML code of the web page, which includes the HTML code of the static part and the HTML code of the dynamic parts, obtained in the previous step by executing their program code;
[0064] - выдача сформированного HTML-кода веб-страницы на оборудование пользователя с последующим отображением веб-страницы браузером пользователя.[0064] - issuing the generated HTML code of the web page to the user equipment and then displaying the web page by the user's browser.
[0065] Например, это может быть URL-запрос (со всеми параметрами GET и/или POST). Метод запроса POST предназначен для передачи и получении данных любых размеров, в отличии от метода GET, где ограничения могут быть как на уровне веб-сервера, так и у веб-браузера пользователя на его устройстве. Поэтому POST может использоваться для загрузки файла или представления заполненной веб-формы. В рамках GET-запроса некоторые данные могут быть переданы в строке запроса URI, указывающие, например, условия поиска, диапазоны дат, или другую информацию, определяющую запрос. В рамках POST запроса произвольное количество данных любого типа может быть отправлено на веб-сервер в теле сообщения запроса. Поля заголовка в POST-запросе указывают на тип содержимого.[0065] For example, this may be a URL request (with all GET and / or POST parameters). The POST request method is designed to transmit and receive data of any size, in contrast to the GET method, where restrictions can be at the level of the web server or at the user's web browser on its device. Therefore, POST can be used to upload a file or view a completed web form. As part of a GET request, some data may be transmitted in the request string of a URI, indicating, for example, search conditions, date ranges, or other information defining the request. As part of a POST request, an arbitrary amount of data of any type can be sent to the web server in the body of the request message. The header fields in the POST request indicate the type of content.
[0066] Также в качестве параметра загрузки может быть указан сам тип запроса (GET или POST), например, в символьном или численном формате.[0066] Also, the type of request (GET or POST) can be specified as a download parameter, for example, in a character or numeric format.
[0067] Или в качестве параметра загрузки могут быть указаны Cookies-файлы (например, если веб-сайт хранит данные о поведении пользователя в cookies и на веб-странице необходимо реализовать раздел «Вы смотрели ранее» на основании этих данных). Cookies-файл - небольшой фрагмент данных, отправленный веб-сервером и хранимый на мобильном устройстве связи или компьютере пользователя. Веб-клиент (обычно веб-браузер) всякий раз при попытке открыть страницу соответствующего веб-сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса.[0067] Or, as a download parameter, Cookies can be specified (for example, if a website stores data on user behavior in cookies and on the web page you need to implement the section "You have looked before" based on this data). A cookie is a small piece of data sent by a web server and stored on a mobile communication device or a user's computer. A web client (usually a web browser) every time it tries to open the page of the corresponding website sends this piece of data to the web server as part of an HTTP request.
[0068] Также в качестве параметра загрузки может использоваться текстовый идентификатор динамической части веб-сайта, позволяющий различным динамическим частям веб-сайта использовать общий кэш. Если у двух разных динамических частей веб-сайта будет одинаковый идентификатор, то место хранения кэша в энергонезависимой памяти будет одинаковым при одинаковых параметрах загрузки. Это позволяет вычислять динамические блоки один раз, после чего использовать уже вычисленный кэш.[0068] Also, the text identifier of the dynamic portion of the web site may be used as a download parameter, allowing the different dynamic portions of the web site to use the shared cache. If the two different dynamic parts of the website have the same identifier, then the cache will be stored in non-volatile memory with the same loading parameters. This allows you to calculate dynamic blocks once, then use the already calculated cache.
[0069] Используемая в изобретении энергонезависимая память предназначена для записи и хранения данных, используемых веб-сервером, в частности, динамических и статических частей HTML-страниц, контента, необходимого для наполнения HTML-страниц, вспомогательной информации и пр. В качестве энергонезависимой памяти может использоваться жесткий диск веб-сервера, энергонезависимая память мобильного устройства связи пользователя или память других компьютеров, размещенных в сети Интернет.[0069] The non-volatile memory used in the invention is intended for recording and storing data used by the web server, in particular, dynamic and static parts of HTML pages, content necessary for filling HTML pages, auxiliary information, etc. As a non-volatile memory use the web server's hard drive, non-volatile memory of the user's mobile device, or the memory of other computers located on the Internet.
[0070] Динамическая часть веб-сайта может иметь любой допустимый размер, например как одно слово-ссылку "Вход", которое после авторизации пользователя меняется на "Выход", так и меню, фильтры, товары и даже целые веб-страницы веб-сайта.[0070] The dynamic part of the website can be of any allowable size, for example, as a single link word “Login”, which after user authorization is changed to “Logout”, as well as menus, filters, products, and even entire web pages of the website .
[0071] Шаг 430: проверяют наличие файла кэша в энергонезависимой памяти для каждой динамической части веб-страницы полученного на предыдущем шаге запроса.[0071] Step 430: check for the presence of the cache file in the non-volatile memory for each dynamic part of the web page obtained in the previous step of the request.
[0072] В момент загрузки веб-страницы с веб-сервера по запросу веб-браузера происходит проверка для каждого динамического блока, расположенного на данной веб-странице: сохранены ли результаты предыдущих вычислений для текущих параметров загрузки и идентификатора, выполненные при предыдущей загрузке. На данном шаге проверяют наличие файла кэша в энергонезависимой памяти веб-сервера, где хранятся результаты предыдущих вычислений. Если файл присутствует, то динамический блок не вычисляется, а результат загружается из файла кэша. Иначе динамический блок вычисляется, а результаты записываются в новый создаваемый файл кэша.[0072] At the time of loading a web page from a web server, a request for a web browser checks for each dynamic block located on this web page: whether the results of previous calculations for the current download parameters and the identifier that were performed during the previous download are saved. At this step, the cache file is checked for presence in the non-volatile memory of the web server where the results of previous calculations are stored. If the file is present, the dynamic block is not calculated, and the result is loaded from the cache file. Otherwise, the dynamic block is calculated, and the results are written to the new generated cache file.
[0073] При отсутствии файла кэша в энергонезависимой памяти веб-сервера во время проверки осуществляют вычисление динамической части веб-страницы на основании параметров загрузки, причем для вычисления предварительно получают данные из оперативной памяти, в случае их наличия; иначе получают данные из энергонезависимой памяти.[0073] In the absence of a cache file in the non-volatile memory of the web server, during the test, the dynamic part of the web page is calculated based on the download parameters, and for the calculation, pre-receive data from the RAM, if present; otherwise, get data from non-volatile memory.
[0074] В данном техническом решении могут использовать оперативную память (RAM) и/или статическую оперативную память (SRAM), и/или память графического устройства (память GPU).[0074] In this technical solution can use random access memory (RAM) and / or static random access memory (SRAM), and / or graphics device memory (GPU memory).
[0075] Чтобы получить ссылку на файл кэша динамической части в виде URL, осуществляют преобразование параметров загрузки таким образом, чтобы для одного и того же набора параметров загрузки возвращалась одна и та же ссылка на файл. Если параметры загрузки не участвуют в вычислении динамической части, то они не участвуют в формировании ссылки на файл кэша. Параметр загрузки может не участвовать в вычислении динамической части, если он не указан явно, или имеет флаг в системе о том, что может не использоваться и не является обязательным. Например, если динамическая часть для всех пользователей не изменяется при вычислении, то указан пользователь или нет не влияет на адрес файла кэша, так как пользователь не влияет на результат вычисления динамической части веб-страницы.[0075] In order to obtain a link to the cache file of the dynamic part in the form of a URL, load parameters are converted in such a way that the same link to the file is returned for the same set of download parameters. If the boot parameters do not participate in the calculation of the dynamic part, then they do not participate in the formation of a link to the cache file. The boot parameter may not participate in the calculation of the dynamic part, if it is not explicitly specified, or has a flag in the system that may or may not be used. For example, if the dynamic part for all users does not change during the calculation, then the specified user or not does not affect the cache file address, since the user does not affect the result of the calculation of the dynamic part of the web page.
[0076] В параметрах загрузки так же используется уникальный идентификатор пользователя, например логин или ID пользователя (поле login), который может быть как численным, так и символьным. Такой подход позволяет кэшировать индивидуальное для каждого пользователя состояние динамических частей, который является посетителем веб-сайта. В некоторых вариантах реализации если пользователь является неавторизованным посетителем, то значение уникального идентификатора будет "-". Данный параметр загрузки является необязательным.[0076] The boot parameters also use a unique user identifier, such as login or user ID (login field), which can be either numeric or symbolic. This approach allows you to cache an individual for each user state of the dynamic parts, which is a visitor to the website. In some embodiments, if the user is an unauthorized visitor, then the value of the unique identifier will be “-”. This boot parameter is optional.
[0077] Также существует параметр Properties[i], который представляет собой массив данных, а именно упорядоченные параметры и их значения URL-запроса после символа "?" и до символа или конца строки (например, "sort_id=id", "sort_direct=1''), который также является необязательным параметром.[0077] There is also a Properties [i] parameter that represents an array of data, namely, ordered parameters and their URL request values after the "?" and before the character or end of the line (for example, "sort_id = id", "sort_direct = 1 ''), which is also an optional parameter.
[0078] Параметр urlpage представляет собой адрес текущей страницы запроса пользователя (после первого символа '/' и до первого из символов '?', '.', '#' или конца url), который является необязательным или обязательным параметром, в зависимости от выбора веб-программиста.[0078] The urlpage parameter is the address of the current user request page (after the first '/' character and before the first of the '?', '.', '#' Characters or the end of the url), which is optional or required parameter, depending on select a web programmer.
[0079] Физически процесс кэширования динамического блока представляет собой сохранение результатов вычисления в файл по определенному адресу, который зависит от параметров загрузки, которые участвуют в вычислении динамической части, например: /cache/modulename/parametrurl/login/var.txt.[0079] Physically, the dynamic block caching process is the saving of the calculation results to a file at a specific address, which depends on the boot parameters that are involved in the calculation of the dynamic part, for example: /cache/modulename/parametrurl/login/var.txt.
[0080] Поскольку необходимо сохранять только различающиеся результаты динамических частей по сравнению с предыдущей вычисленной частью с целью экономии места в энергонезависимой памяти, то используется однозначная функция преобразования набора параметров запроса в URL файла кэша. Так как на вычисление динамической части могут влиять не все параметры запроса, указываются только те, которые влияют на результат.[0080] Since it is necessary to store only the differing results of the dynamic parts as compared to the previously calculated part in order to save space in the non-volatile memory, the unambiguous function of converting the query parameter set to the cache file URL is used. Since not all query parameters can affect the calculation of the dynamic part, only those that affect the result are indicated.
[0081] Для этого разделяют параметры загрузки на те, которые влияют на результат вычисления и нет (текстовый идентификатор, логин, URL). Запросы POST не кэшируются, т.к. они предназначены для обмена информации веб-сервера и веб-браузера пользователя без обновления целиком страницы. Поэтому кэшируются только GET-запросы.[0081] To do this, divide the boot parameters to those that affect the result of the calculation and no (text identifier, login, URL). POST requests are not cached, because they are intended to exchange the information of the web server and the user's web browser without refreshing the whole page. Therefore, only GET requests are cached.
[0082] Далее формируется уникальная ссылка на файл кэша, например, такого вида, причем расширение может быть любое, не ограничиваясь:[0082] Next, a unique link to the cache file is formed, for example, of this type, and the extension can be any, not limited to:
/{текстовый идентификатор}/{логин}/{параметры}.txt./ {text identifier} / {login} / {parameters} .txt.
[0083] Если логин пользователя не участвует в вычислении динамической части веб-страницы, то ссылка на файл кэша будет без этого параметра загрузки иметь следующий вид:[0083] If the user login is not involved in the calculation of the dynamic part of the web page, then the link to the cache file without this download parameter will look like this:
/{текстовый идентификатор}/{параметры}.txt/ {text identifier} / {parameters} .txt
[0084] Если и параметры не участвуют в формировании (текстовый идентификатор обязательно влияет на формирование URL, это позволяет использовать различным динамическим частям веб-страницы один и тот же кэш), то так:[0084] If the parameters do not participate in the formation (a text identifier necessarily influences the formation of a URL, this allows the same cache to be used by different dynamic parts of a web page), then:
/{текстовый идентификатор}.txt/ {text id} .txt
[0085] В итоге URL кэша может иметь следующий вид "cache/modules/" + name + "/" + urlpage + "/" + login + "/" + properties[1] + "/" + … + "/" + properties[M] + ".txt", что представляет собой текстовую конкатенацию параметров.[0085] As a result, the cache URL can be the following: "cache / modules /" + name + "/" + urlpage + "/" + login + "/" + properties [1] + "/" + ... + "/" + properties [M] + ".txt", which is a text concatenation of parameters.
[0086] Примеры URL на файл кэша могут быть следующими:[0086] Examples of URLs to a cache file are as follows:
- "/cache/modules/header/-.txt" - динамическая часть шапки веб-сайта для неавторизованного пользователя.- "/cache/modules/header/-.txt" - the dynamic part of the website header for an unauthorized user.
- "/cache/modules/karusel.txt" - динамическая часть баннера, который не зависит ни от чего и может принимать только одно значение.- "/cache/modules/karusel.txt" - the dynamic part of the banner, which does not depend on anything and can take only one value.
- "/cache/modules/control_table/users/admin/sort_id=id/sort_direct=1.txt'' - динамическая часть веб-страницы с текстовым идентификатором control_table в администраторской части, отвечающий за отображение данных (а в данном случае пользователей users), который был просмотрен пользователем сайта admin и отсортирован по столбцу идентификатора id в порядке убывания.- "/cache/modules/control_table/users/admin/sort_id=id/sort_direct=1.txt '' - the dynamic part of the web page with the text identifier control_table in the administrative part that is responsible for displaying data (and in this case, users) which was viewed by the admin user and sorted by id column id in descending order.
[0087] Результатом вычисления динамической части веб-страницы является следующий набор данных:[0087] The result of calculating the dynamic part of a web page is the following data set:
[0088] HTML - код динамической части, который необходимо разместить на веб-странице;[0088] HTML - code of the dynamic part, which must be placed on a web page;
[0089] Javascript - код динамической части, который необходимо разместить на веб-странице;[0089] Javascript is the code of the dynamic part to be placed on the web page;
[0090] Javascript - код, который запускается по событию onload при загрузке веб-страницы. Чтобы код javascript выполнялся при загрузке веб-страницы, его необходимо указать в параметре onload тега body в HTML-коде веб-страницы. Если на веб-странице располагается несколько динамических частей, которые используют onload при загрузке, то их необходимо скомпоновать в отдельный javascript-код, который будет помещен в событие onload.[0090] Javascript is the code that is triggered by the onload event when the web page is loaded. In order for javascript code to be executed when a web page is loaded, it must be specified in the onload parameter of the body tag in the HTML code of the web page. If there are several dynamic parts on the web page that use onload when loading, then they need to be assembled into a separate javascript code that will be placed in the onload event.
[0091] CSS стиль;[0091] CSS style;
[0092] POST - ответ в виде текстовой строки;[0092] POST — answer as a text string;
[0093] Дополнительный результат - данные в формате текстовой строки, если есть необходимость получать из динамической части дополнительную информацию. Может использоваться в том случае, если, например, данные сначала необходимо преобразовать в зависимости от результатов вычислений других динамических частей веб-страницы. Это поле позволяет данные передавать в удобном для дальнейшей работы формате.[0093] An additional result is data in the format of a text line, if there is a need to obtain additional information from the dynamic part. It can be used if, for example, the data must first be converted depending on the results of the calculations of other dynamic parts of the web page. This field allows data to be transmitted in a convenient format for further work.
[0094] Например, рассмотрим веб-страницу товара в Интернет-магазине. Пусть, на веб-странице имеются следующие динамические части:[0094] For example, consider a product webpage in an online store. Suppose that the web page has the following dynamic parts:
- Поле А корзины с указанием общей суммы и возможностью выведения списка добавленных товаров при наведении мышки,- Field A of the basket indicating the total amount and the possibility of deriving the list of added goods when you hover the mouse,
- Поле В товара, где выводятся подробные характеристики (без цены, цена выводится отдельно)- Field B of the product, where detailed characteristics are displayed (without the price, the price is displayed separately)
[0095] Допустим на веб-сайте действует акция: добавьте в корзину товар №1, и получите на товар №2 скидку 50%. Т.е. чтобы понять, какую цену показывать посетителю на странице товара №2, необходимо сначала получить данные о добавленных товарах, а потом вычислить характеристики товара. В данном случае цена без скидки хранится в энергонезависимой памяти в базе данных там же, где и остальные характеристики, поэтому логичнее получить ее вместе с остальными запросами в динамической части В. Но цену не стоит встраивать в результат HTML-кода, а можно вернуть как дополнительный результат, чтобы произвести дальнейшее вычисление. Таким образом, после вычисления динамических частей А и В происходит перерасчет цены, если в корзине есть товар №1.[0095] Suppose a website has a special offer: add item 1 to the basket, and get 50% discount on item 2. Those. in order to understand what price to show to a visitor on product page No. 2, you must first obtain data about the added products, and then calculate the characteristics of the product. In this case, the price without a discount is stored in non-volatile memory in the database in the same place as the other characteristics, so it is more logical to get it together with the other requests in the dynamic part B. But the price should not be embedded into the result of the HTML code, but can be returned as an additional result to make further calculation. Thus, after calculating the dynamic parts A and B, the price is recalculated if there is item 1 in the basket.
[0096] Динамическая часть благодаря возможности обрабатывать параметры запроса типа POST может отправлять запросы к веб-серверу и получать ответ в любом текстовом формате (например, JSON) без перезагрузки страницы (например, технология AJAX). Если полученный результат с веб-сервера отобразить на странице, то страница изменится, причем, динамические части будут иметь тот же кэш, ведь в момент запроса страница с динамическими частями не загружалась повторно. Это можно использовать, когда динамическая часть может принимать множество значений, которые быстро вычисляются и, как следствие, их не стоит кэшировать. Например, динамическая часть, которая отображает файловую структуру: слева список папок, а при клике на папку появляются вложенные в папку файлы. Получение дерева файловой структуры не является трудоемкой операцией, поэтому кэшировать результат при каждом клике не имеет смысла.[0096] The dynamic part due to the ability to process request parameters of the POST type can send requests to the web server and receive a response in any text format (for example, JSON) without reloading the page (for example, AJAX technology). If the result from the web server is displayed on the page, the page will change, and the dynamic parts will have the same cache, because at the time of the request the page with the dynamic parts was not loaded again. This can be used when the dynamic part can take many values that are quickly calculated and, as a result, they should not be cached. For example, the dynamic part that displays the file structure: on the left is a list of folders, and when you click on a folder, attached files appear in the folder. Obtaining a file structure tree is not a time consuming operation, so it does not make sense to cache the result with each click.
[0097] В итоге, если состояния динамических частей для определенных параметров запроса уже были вычислены ранее, скорость загрузки веб-страницы будет максимально быстрой, поскольку не потребуется никаких вычислений.[0097] As a result, if the states of the dynamic parts for certain parameters of the request have already been calculated earlier, the loading speed of the web page will be as fast as possible, since no calculations will be required.
[0098] Весь процесс вычисления результата динамической части основывается на запросе данных из места их хранения (например, в базе данных посредством SQL-запроса) и дальнейшими операциями с этими данными. Основной задачей является максимальное ускорение времени получения данных из места их хранения. В качестве операций над динамической частью могут использоваться операции чтения, модифицирования (обновления), удаления, создания, известные из уровня техники.[0098] The whole process of calculating the result of the dynamic part is based on querying data from its storage location (for example, in a database using an SQL query) and further operations with this data. The main objective is to maximize the acceleration of the time of receipt of data from their storage. As operations on the dynamic part can be used the operations of reading, modifying (updating), deleting, creating, known from the prior art.
[0099] Если осуществляется операция чтения внутри динамической части веб-страницы, то в оперативную память сохраняют связь, которая содержит данные об URL кэша динамической части веб-страницы, строку подключения к базе данных и таблицу внутри базы данных, к которой был запрос.[0099] If a read operation is performed inside the dynamic part of a web page, a link is stored in RAM that contains data about the URL of the cache of the dynamic part of the web page, the database connection string and a table inside the database to which the query was sent.
[00100] Например это может быть выполнено в следующем виде:[00100] For example, this may be performed as follows:
[00101] "/cache/modules/header/-.txt",[00101] "/cache/modules/header/-.txt",
[00102] "Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=Settings;''[00102] "Driver = {MySQL ODBC 5.1 Driver}; Server = localhost; Database = Settings; '"
[00103] "Menu".[00103] "Menu".
[00104] Если осуществляется операция создания, обновления или удаления, выполняют поиск всех связей, созданных ранее при чтении по данным строки подключения к базе данных, таблицы внутри базы данных. Затем удаляют все файлы кэша, которые формировались с этими данными - эти файлы кэша будут неактуальными, так как изменились.[00104] If the operation is to create, update, or delete, search for all the connections created earlier when reading from the data in the connection string to the database, a table inside the database. Then, all cache files that have been configured with this data are deleted — these cache files will be irrelevant since they have changed.
[00105] В данном техническом решении реализована система ускорения получения данных. Она заключается в подгрузке информации (которая хранится в энергонезависимой памяти) в момент первой загрузки веб-сайта, в оперативную память. Вся дальнейшая работа веб-разработчика с данными основывается на обобщенном запросе к CMS с указанием, какие данные он хочет использовать без уточнения места хранения. Система сначала запрашивает данные из оперативной памяти и, если данных там нет, запрашивает их из энергонезависимой памяти (например, в базе данных).[00105] In this technical solution, a system for accelerating data acquisition is implemented. It consists in loading information (which is stored in non-volatile memory) at the time of the first loading of the website into RAM. All further work of the web developer with data is based on a generalized request to the CMS indicating what data he wants to use without specifying the storage location. The system first requests data from the RAM and, if there is no data, requests it from non-volatile memory (for example, in a database).
[00106] В данном техническом решении используется модель хранения данных Сущность-Атрибут-Значение (Entity-Attribute-Value (EAV)). Такая модель имеет ряд преимуществ:[00106] This technical solution uses the Entity-Attribute-Value (EAV) data storage model. This model has several advantages:
[00107] 1. Позволяет изменять атрибуты и параметры для сущности без изменения структуры базы данных.[00107] 1. Allows you to change attributes and parameters for an entity without changing the database structure.
[00108] 2. Исключает избыточность данных.[00108] 2. Eliminates data redundancy.
[00109] Однако в уровне техники при использовании данной модели данных возникают следующие проблемы:[00109] However, in the prior art, when using this data model, the following problems arise:
[00110] 1. Усложнение запросов выборки по атрибутам, которые требуют больше времени из-за невозможности применения стандартных способов индексации.[00110] 1. The complexity of sampling requests for attributes that take more time due to the inability to use standard indexing methods.
[00111] 2. Необходимость отслеживания дублирующих связей.[00111] 2. The need to track duplicate links.
[00112] 3. Необходимость отслеживания связей между несуществующими записями таблицы.[00112] 3. The need to track links between non-existing table entries.
[00113] Указанные выше проблемы решаются в рамках данного изобретения. Рассмотрим подробнее пример предложенной структуры SQL для хранения данных пользователей.[00113] The above problems are solved in the framework of this invention. Let's take a closer look at an example of the proposed SQL structure for storing user data.
[00114] Данная структура имеет таблицу UUsers, хранит id пользователей, а также таблицу UProperty, которая хранит данные о самих атрибутах. Например, для атрибута «Адрес» существует:[00114] This structure has a UUsers table that stores user id as well as a UProperty table that stores data about the attributes themselves. For example, for the attribute "Address" exists:
[00115] уникальный идентификатор «idProperty» равный «2»,[00115] the unique identifier "idProperty" is equal to "2",
[00116] название на русском языке,[00116] the name in Russian,
[00117] название на латинице,[00117] the name in Latin,
[00118] тип значений для этого атрибута,[00118] the type of values for this attribute,
[00119] способ отображения параметра (это может быть как обычное текстовое поле, так и слайдер с двумя ползунками),[00119] parameter display method (this can be either a regular text field or a slider with two sliders),
[00120] должны ли быть значения адресов уникальными,[00120] Should the address values be unique,
[00121] сортировка атрибута относительно других атрибутов пользователя[00121] attribute sorting relative to other user attributes
[00122] Таблица UPropertyValue хранит значения атрибутов.[00122] The UPropertyValue table stores attribute values.
[00123] Таблица UUsersPropertyValue хранит связи между атрибутами и пользователями.[00123] The UUsersPropertyValue table stores associations between attributes and users.
[00124] Чтобы сделать выборку данных максимально быстро, выполняют один сложный запрос с использованием оператора JOIN вместо нескольких простых. Команда INNERJOIN позволяет SQL обрабатывать таблицы в порядке, отличном от указанного в запросе. Это дает возможность базе данных максимально быстро вернуть результат.[00124] To make data retrieval as fast as possible, perform one complex query using the JOIN operator instead of several simple ones. The INNERJOIN command allows SQL to process tables in a different order than specified in the query. This allows the database to return the result as quickly as possible.
[00125] Сама функция запроса возвращает сущности, которые удовлетворяют требования к атрибутам и их значениям, например:[00125] The query function itself returns entities that satisfy the requirements for attributes and their values, for example:
[00126] Требования к сущности о наличии хотя бы одного значения этого атрибута.[00126] Entity requirements for the presence of at least one value of this attribute.
[00127] Проверка о наличии/отсутствии NULL среди значений.[00127] Check for the presence / absence of NULL among the values.
[00128] Наличие у определенного атрибута значения, которое содержит указанную строку или полностью совпадает.[00128] The presence of a value in a particular attribute that contains the specified string or completely matches.
[00129] Сложность таких запросов в том, что их необходимо сначала автоматически сформировать в зависимости от указанных требований к атрибутам, а потом уже выполнять. Например, если существует задача выборки по двум значениям различных параметров необходимо найти данные сначала по одному, потом по другому параметру, после чего найти пересечение. Чтобы сделать это одним запросом для любого количества параметров, можно автоматически собрать сложный запрос для любого количества требований к параметрам.[00129] The complexity of such requests is that they must first be automatically generated based on the specified attribute requirements, and then executed. For example, if there is a problem of sampling by two values of different parameters, you must find the data first by one, then by another parameter, and then find the intersection. To do this in one query for any number of parameters, you can automatically build a complex query for any number of parameter requirements.
[00130] Чтобы в модели EAV строить такие запросы в базу данных для любого количества атрибутов с любыми требованиями к их значениям, используют компоновщик запросов для всех возможных условий.[00130] In order to build such queries into the database for any number of attributes with any requirements for their values in the EAV model, they use the query builder for all possible conditions.
[00131] Сохранять результаты запросов к базе данных и всех их вариаций не имеет смысла, так как может быть слишком большое количество подмножеств результатов. Уменьшить число запросов к базе данных можно с помощью заранее загруженных таблиц в оперативную память. Таблицы загружаются в оперативную память в момент запуска веб-сайта. Затем таблицы автоматически преобразуются, однако предварительно пользователь на этапе создания веб-сайта устанавливает, что таблица USERS будет храниться в оперативной памяти.[00131] To save the results of queries to the database and all their variations does not make sense, since there may be too many subsets of the results. To reduce the number of queries to the database, you can use pre-loaded tables in RAM. Tables are loaded into RAM at the time of launching the website. Then the tables are automatically converted, but the user at the stage of creating the website pre-determines that the USERS table will be stored in RAM.
[00132] Данные хранятся в оперативной памяти как упорядоченный список сущностей, к которым уже привязаны их упорядоченные атрибуты и значения.[00132] The data is stored in RAM as an ordered list of entities to which their ordered attributes and values are already associated.
[00133] Также в оперативную память дополнительно подгружается список всех параметров и значений для ускоренного получения списка всех атрибутов и их значений без привязки к сущностям.[00133] Also, a list of all parameters and values is additionally loaded into RAM for accelerated retrieval of a list of all attributes and their values without being bound to entities.
[00134] Данное техническое решение было апробировано на практике и реализовано: был разработан сайт http://chik-chik.ru/, который показал в среднем лучшие результаты по скорости по обработке и управлению данными веб-сайта в нагрузочном тестировании по сравнению с другими крупными сайтами, имеющими аналогичные технические решения, известные из уровня техники. Для тестирования был использован максимально близкий сервер к физическому расположению веб-сервера сайта.[00134] This technical solution was tested in practice and implemented: the site http://chik-chik.ru/ was developed, which showed, on average, the best results in speed for processing and managing website data in load testing compared to other large sites that have similar technical solutions known from the prior art. For testing, we used the server as close as possible to the physical location of the web site server.
[00135] Как отмечено выше, сущность изобретения предпочтительно реализуется, по меньшей мере, на одном устройстве обработке данных или веб-сервере. Таким образом, изобретение не требует каких-либо изменений в обычном аппаратном или программном обеспечении клиентского компьютера. Обобщая, описанная выше функциональность или последовательность шагов способа может быть реализована в программном обеспечении, исполняемом на устройстве обработки данных или процессоре, а именно в виде набора инструкций (программный код) в модуле кода, который находится в оперативной памяти вычислительного устройства. До тех пор пока вычислительное устройство не понадобится, набор инструкций может храниться в другом типе памяти, например на жестком диске или в съемной памяти, такой как оптический диск (для возможного использования на компакт-диске) или гибкий диск (для возможного использования на флоппи-диске) или загружается через Интернет или через другую компьютерную сеть.[00135] As noted above, the invention is preferably implemented on at least one data processing device or a web server. Thus, the invention does not require any changes in the usual hardware or software of the client computer. Summarizing, the above described functionality or sequence of steps of a method can be implemented in software executed on a data processing device or a processor, namely in the form of a set of instructions (program code) in a code module that resides in the main memory of a computing device. Until a computing device is needed, a set of instructions can be stored in another type of memory, for example, on a hard disk or in removable memory, such as an optical disk (for possible use on a CD) or a floppy disk (for possible use on a floppy disk). disk) or downloaded via the Internet or another computer network.
[00136] Кроме того, хотя различные описанные способы удобно реализовать в компьютере общего назначения, специалист в данной области техники также признает, что такие способы могут выполняться на других аппаратных средствах, в прошивке или на более специализированных устройствах, выполненных для реализации требуемых этапов способа.[00136] In addition, although the various methods described are conveniently implemented in a general purpose computer, one skilled in the art also recognizes that such methods can be performed on other hardware, in firmware, or on more specialized devices implemented to implement the required method steps.
Claims (13)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018125461A RU2691834C1 (en) | 2018-07-11 | 2018-07-11 | Method of managing web site data |
PCT/RU2018/000457 WO2020013724A1 (en) | 2018-07-11 | 2018-07-11 | Method of managing website data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018125461A RU2691834C1 (en) | 2018-07-11 | 2018-07-11 | Method of managing web site data |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2691834C1 true RU2691834C1 (en) | 2019-06-18 |
Family
ID=66947916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2018125461A RU2691834C1 (en) | 2018-07-11 | 2018-07-11 | Method of managing web site data |
Country Status (2)
Country | Link |
---|---|
RU (1) | RU2691834C1 (en) |
WO (1) | WO2020013724A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291083A (en) * | 2020-01-22 | 2020-06-16 | 奇安信科技集团股份有限公司 | Webpage source code data processing method and device and computer equipment |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685667A (en) * | 2020-12-29 | 2021-04-20 | 浪潮软件科技有限公司 | Data interaction method and device, computer readable medium and interaction server |
CN115442440A (en) * | 2022-09-02 | 2022-12-06 | 上海识装信息科技有限公司 | Communication method, communication device, electronic equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194678B1 (en) * | 1999-03-02 | 2007-03-20 | Hitachi, Ltd. | Dynamic web page generation method and system |
US7987239B2 (en) * | 2001-12-19 | 2011-07-26 | International Business Machines Corporation | Method and system for caching role-specific fragments |
US8924411B2 (en) * | 2005-05-31 | 2014-12-30 | Open Text S.A. | System and method for the dynamic provisioning of static content |
RU2646329C2 (en) * | 2012-02-13 | 2018-03-02 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Generation and caching of software code |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993120B2 (en) * | 2002-10-23 | 2006-01-31 | International Business Machines Corporation | System and method for copying and transmitting telephony conversations |
-
2018
- 2018-07-11 WO PCT/RU2018/000457 patent/WO2020013724A1/en active Application Filing
- 2018-07-11 RU RU2018125461A patent/RU2691834C1/en active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194678B1 (en) * | 1999-03-02 | 2007-03-20 | Hitachi, Ltd. | Dynamic web page generation method and system |
US7987239B2 (en) * | 2001-12-19 | 2011-07-26 | International Business Machines Corporation | Method and system for caching role-specific fragments |
US8924411B2 (en) * | 2005-05-31 | 2014-12-30 | Open Text S.A. | System and method for the dynamic provisioning of static content |
RU2646329C2 (en) * | 2012-02-13 | 2018-03-02 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Generation and caching of software code |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291083A (en) * | 2020-01-22 | 2020-06-16 | 奇安信科技集团股份有限公司 | Webpage source code data processing method and device and computer equipment |
CN111291083B (en) * | 2020-01-22 | 2024-02-06 | 奇安信科技集团股份有限公司 | Webpage source code data processing method and device and computer equipment |
Also Published As
Publication number | Publication date |
---|---|
WO2020013724A1 (en) | 2020-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240320286A1 (en) | System and method for deep linking and search engine support for web sites integrating third party application and components | |
CN111475757B (en) | Page updating method and device | |
US8751466B1 (en) | Customizable answer engine implemented by user-defined plug-ins | |
US8977653B1 (en) | Modifying web pages to reduce retrieval latency | |
JP5821678B2 (en) | Web service for automatic compatibility check independent of web application browser | |
US6538673B1 (en) | Method for extracting digests, reformatting, and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation | |
US7933871B2 (en) | Discovering and updating templates | |
US11403356B2 (en) | Personalizing a search of a search service | |
US20170046432A1 (en) | Cloud-Enabled Architecture For On-Demand Native Application Crawling | |
CN103765419A (en) | System and method for providing offline access in hosted document service | |
US10783317B2 (en) | Generation of combined documents from content and layout documents based on semantically neutral elements | |
RU2691834C1 (en) | Method of managing web site data | |
Hajba | Website Scraping with Python | |
JP2017504129A (en) | Construction of a state expression represented in a web browser | |
Andhavarapu | Learning Elasticsearch | |
US20220237042A1 (en) | Resource pre-fetch using age threshold | |
JP2021526672A (en) | Conditional interpretation of a single style definition identifier on a resource | |
CN113326418A (en) | Method and device for determining webpage information source and webpage quality | |
US20170262550A1 (en) | Caching of a site model in a hierarchical modeling system for network sites | |
US11544265B2 (en) | Generating reports for enterprise pages based upon instrumentation data generated by client computing devices | |
JP2004310206A (en) | Structured html generation system, and system for unified management of dynamic and static pages | |
Phang | Mastering Front-End Web Development (HTML, Bootstrap, CSS, SEO, Cordova, SVG, ECMAScript, JavaScript, WebGL, Web Design and many more.): 14 Books in 1. Introducing 200+ Extensions. An Advanced Guide. | |
Reagan et al. | Other Tips and Tricks | |
Irimus | Sequential and asynchronous fetching of large amounts of data in web applications | |
Khan | Comparison of NoSQL Databases for Inter-net of Things Systems |