Online collaborative drawing board data processing method, related device and medium

By dividing the online collaborative canvas into multiple partitions and loading the intersection data, the problems of memory consumption and low processing efficiency when the online collaborative canvas has a large amount of data are solved, and more efficient data processing is achieved.

CN121120356APending Publication Date: 2025-12-12TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410756370.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-06-12
Publication Date
2025-12-12

AI Technical Summary

Technical Problem

Existing online collaborative whiteboards consume a large amount of client memory and have low processing efficiency when dealing with large amounts of data, requiring objects to wait for a long time.

Method used

The online collaborative canvas is divided into multiple partitions, and a partition position pointer is set for each partition. In response to the open operation, the intersection of the window boundary position and the partition position pointer is obtained, and only the partition content data corresponding to the intersection is loaded into memory for rendering.

Benefits of technology

It reduces data processing time, lowers memory usage, and improves the data processing efficiency of online collaborative drawing boards.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121120356A_ABST
    Figure CN121120356A_ABST
Patent Text Reader

Abstract

The invention provides an online collaborative drawing board data processing method, a related device and a medium. The method comprises the steps that in response to opening operation on an online collaborative drawing board, a first window boundary position is obtained, and the first window boundary position is positioning of a window boundary of the online collaborative drawing board on the online collaborative drawing board; obtaining a partition position pointer of each partition divided by the online collaborative drawing board; comparing the first window boundary position with a partition position pointer of each partition to determine a first partition position pointer matched with the first window boundary position; loading the first partition content data stored corresponding to the first partition position pointer to a memory, and rendering the window based on the first partition content data loaded to the memory. According to the method, the memory occupation amount of online collaborative drawing board data processing can be reduced, and the data processing efficiency is improved. The embodiment of the invention can be applied to scenes such as opening and editing of the online collaborative drawing board.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of online documents, and in particular to a method, apparatus and medium for processing data on an online collaborative whiteboard. Background Technology

[0002] Currently, in online collaborative canvases, once an object opens the canvas, all the content data of the canvas stored on the server needs to be loaded into the client's memory at once, and then the page is rendered using all the content data in the client's memory. Furthermore, once an object edits the content of the online collaborative canvas, the edited content needs to be reflected in all the content data in memory, and then sent to the client's memory to replace all the content data in the client's memory. This is especially problematic when the amount of data in the online collaborative canvas is large, consuming a significant amount of client memory, and the processing efficiency of the online collaborative canvas is low, requiring objects to wait for a considerable amount of time. Summary of the Invention

[0003] This disclosure provides an online collaborative whiteboard data processing method, related apparatus, and medium, which can reduce the memory footprint of online collaborative whiteboard data processing and improve data processing efficiency.

[0004] According to one aspect of this disclosure, an online collaborative whiteboard data processing method is provided, comprising:

[0005] In response to the opening operation of the online collaboration canvas, the first window boundary position is obtained, and the first window boundary position is the positioning of the window boundary of the online collaboration canvas on the online collaboration canvas;

[0006] Obtain the partition position pointer of each partition in the online collaborative canvas;

[0007] The first window boundary position is compared with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position;

[0008] Load the content data of the first partition corresponding to the first partition position pointer into memory, and render the window based on the content data of the first partition loaded into the memory.

[0009] According to one aspect of this disclosure, an online collaborative whiteboard data processing device is provided, comprising:

[0010] The first acquisition unit is used to acquire the first window boundary position in response to the opening operation of the online collaboration canvas, wherein the first window boundary position is the positioning of the window boundary of the online collaboration canvas on the online collaboration canvas;

[0011] The second acquisition unit is used to acquire the partition position pointer of each partition into which the online collaborative drawing board is divided;

[0012] The first comparison unit is used to compare the first window boundary position with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position.

[0013] The first loading unit is used to load the first partition content data stored corresponding to the first partition position pointer into memory, and to render the window based on the first partition content data loaded into the memory.

[0014] Optionally, the first loading unit is specifically used for:

[0015] If it is determined that the memory contains the content data of the first partition and the content data of the first partition has not expired, the window is rendered based on the content data of the first partition in the memory;

[0016] If it is determined that there is no content data of the first partition in the memory, or that the content data of the first partition in the memory has expired, the content data of the first partition is loaded from the server into the memory, and the window is rendered based on the content data of the first partition loaded into the memory.

[0017] Optionally, the first loading unit is further configured to:

[0018] Obtain the first version number of the content data of the first partition from the memory;

[0019] Retrieve the second version number of the content data of the first partition from the server;

[0020] If the first version number is less than the second version number, it is determined that the data in the first partition in the memory has expired.

[0021] Optionally, the first comparison unit is specifically used to: if it is determined that the window and the partition have an intersection based on the boundary position of the first window and the partition position pointer of the partition, then determine the partition position pointer as the first partition position pointer that matches the boundary position of the first window;

[0022] The first loading unit is specifically used to: load the intersection into memory, and render the window based on the intersection loaded into the memory.

[0023] Optionally, the window boundary position is represented by the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, and the first minimum vertical axis coordinate of the window in the online collaboration canvas coordinate system, and the partition position pointer is represented by the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate of the partition in the online collaboration canvas coordinate system.

[0024] The first comparison unit is further configured to:

[0025] Based on the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, the first minimum vertical axis coordinate, the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate, it is determined that the window and the partition have an intersection.

[0026] Optionally, the position of the first window boundary is represented by a first curve function of each edge of the window in the online collaboration canvas coordinate system, and the partition position pointer is represented by a second curve function of each edge of the partition in the online collaboration canvas coordinate system.

[0027] The first comparison unit is further configured to:

[0028] Based on the first curve function and the second curve function, it is determined that the view window and the partition have an intersection.

[0029] Optionally, the online collaborative whiteboard data processing device further includes:

[0030] The first determining unit is configured to determine the first area of ​​the window based on the position of the first window boundary;

[0031] The third acquisition unit is used to acquire the second area of ​​the online collaborative drawing board;

[0032] The fourth acquisition unit is used to acquire an overall position pointer if the first ratio of the first area to the second area is greater than a first threshold, and the overall position pointer is stored in correspondence with the overall content data of the online collaborative drawing board.

[0033] The second loading unit is used to load the overall content data stored corresponding to the overall position pointer into memory, and to render the window based on the overall content data loaded into the memory.

[0034] Optionally, the second loading unit is specifically used for:

[0035] The first window content data is determined from the overall content data stored corresponding to the overall position pointer, based on the first window boundary position;

[0036] Load the content data of the first window into the memory;

[0037] The window is rendered based on the content data of the first window loaded into the memory.

[0038] Optionally, the online collaborative whiteboard data processing device further includes:

[0039] The fifth acquisition unit is used to acquire the second window boundary position in response to the view movement operation of the window, wherein the second window boundary position is the position of the window boundary on the online collaborative drawing board after the view movement.

[0040] The second comparison unit is used to compare the second window boundary position with the partition position pointers of each partition to determine the second partition position pointer that matches the second window boundary position.

[0041] The third loading unit is used to load the second partition content data stored corresponding to the second partition position pointer into memory, and to render the window based on the second partition content data loaded into the memory.

[0042] Optionally, the online collaborative whiteboard data processing device further includes:

[0043] The first generation unit is used to generate edited content data in response to an editing operation on the rendered content in the window;

[0044] The sixth acquisition unit is used to acquire the editing position of the editing operation;

[0045] The second determining unit is used to compare the edit position with the partition position pointers of each partition to determine the third partition position pointer that matches the edit position;

[0046] The first update unit is used to update the content data of the third partition corresponding to the third partition position pointer in the memory with the edited content data.

[0047] Optionally, the online collaborative whiteboard data processing device further includes:

[0048] The first sending unit is configured to send the edited content data to the server in response to the server update condition triggered by the edited content data, so as to update the third partition content data corresponding to the third partition position pointer on the server.

[0049] Optionally, the first transmitting unit is specifically used for:

[0050] The total amount of data of each of the edited content data generated in response to the editing operation after the previous update of the server has reached a predetermined threshold.

[0051] The edited content data generated in response to the previous update of the server in response to the edit operation are sent together to the server to update the third partition content data corresponding to the third partition position pointer on the server.

[0052] Optionally, the second acquisition unit is specifically used for:

[0053] Based on the multiple functional units in the online collaborative canvas, the online collaborative canvas is divided into multiple partitions, and the number of partitions is no greater than the number of functional units.

[0054] Assign a partition location pointer to each partition.

[0055] Optionally, the second acquisition unit is further configured to:

[0056] Determine the number of functional units in the online collaborative whiteboard;

[0057] Input the online collaborative canvas into the complexity prediction model to obtain the content complexity of the online collaborative canvas;

[0058] Obtain the scenario type to which the online collaborative canvas is applied;

[0059] The number of partitions is determined based on the number of functional units, the complexity of the online collaborative whiteboard content, and the scene type, and the number of partitions is not greater than the number of functional units.

[0060] Based on the number of partitions, the online collaborative whiteboard is divided into partitions.

[0061] Optionally, the second acquisition unit is further configured to:

[0062] The multiple functional units are input into the partition importance prediction model to obtain the importance of each functional unit;

[0063] Based on the importance, a core functional unit is assigned to each partition, and the functional units other than the core functional unit among the multiple functional units are identified as edge functional units.

[0064] Among the plurality of core functional units, the adjacent core functional units of the edge functional unit are determined;

[0065] The edge functional unit is divided into multiple sub-edge functional units according to the area ratio of the adjacent core functional units, and each sub-edge functional unit is expanded into a corresponding adjacent core functional unit. Each expanded core functional unit is then treated as a partition.

[0066] Optionally, the second acquisition unit is further configured to:

[0067] According to multiple candidate merging schemes, a portion of the adjacent functional units are merged to obtain multiple merged results, each of which includes multiple merged functional units.

[0068] Based on the multiple merged results corresponding to the multiple candidate merging schemes, a target merging scheme is determined;

[0069] The multiple merged functional units in the target merging scheme are determined as the multiple partitions.

[0070] Optionally, the second acquisition unit is further configured to:

[0071] Determine the area variance of the plurality of merged functional units in the merged result corresponding to each candidate merging scheme;

[0072] Based on the area variance, the target merging scheme is determined from among the multiple candidate merging schemes.

[0073] Optionally, the online collaborative whiteboard data processing device further includes:

[0074] The third determining unit is used to determine the average area of ​​the partitions based on the area of ​​the online collaborative canvas and the number of partitions;

[0075] The fourth determining unit is used to determine the lower limit of the merged area based on the average area of ​​the partitions;

[0076] Select unit, used to randomly select one functional unit from the functional units that have not been partitioned into a partition as the anchor functional unit;

[0077] An execution unit is used to execute a first process, the first process including: if the area of ​​the anchor functional unit is less than the lower limit of the merged area, arbitrarily select a candidate merged functional unit to merge with the anchor functional unit to expand the area of ​​the anchor functional unit, and return to the first process until the area of ​​the anchor functional unit is not less than the lower limit of the merged area, wherein the candidate merged functional unit is a functional unit that has not been partitioned among the adjacent functional units of the anchor functional unit;

[0078] The return unit is used to take the merged anchor function unit as a merged function unit and return the step of randomly selecting a function unit from the function units that have not been partitioned into a partition as the anchor function unit.

[0079] A partitioning unit is used to divide each of the merged functional units as a partition to obtain the candidate merging scheme.

[0080] According to one aspect of this disclosure, an electronic device is provided, including a memory and a processor, the memory storing a computer program, the processor executing the computer program to implement the online collaborative drawing board data processing method as described above.

[0081] According to one aspect of this disclosure, a computer-readable storage medium is provided, the storage medium storing a computer program that, when executed by a processor, implements the online collaborative drawing board data processing method as described above.

[0082] According to one aspect of this disclosure, a computer program product is provided, comprising a computer program that is read and executed by a processor of a computer device, causing the computer device to perform the online collaborative whiteboard data processing method as described above.

[0083] In this embodiment, the online collaboration canvas is divided into multiple partitions, and each partition is assigned a partition position pointer. The memory address pointed to by the partition position pointer stores the partition content data corresponding to the partition position pointer. In response to the opening operation of the online collaboration canvas, the position of the window boundary of the online collaboration canvas on the online collaboration canvas is obtained, and this position is used as the first window boundary position. Since the online collaboration canvas has been divided into multiple partitions, and the window is located on the online collaboration canvas, the window has an intersection with at least one of the multiple partitions. By comparing the first window boundary position with the partition position pointers of the multiple partitions, the first partition position pointer matching the first window boundary position can be determined based on the intersection of the window with each partition. Afterwards, it is only necessary to load the first partition content data stored corresponding to the first partition position pointer into memory, and render the window based on the first partition content data loaded into memory, without loading and rendering all the main text data. Compared with related technologies, the embodiments of this disclosure only require loading the content data of the first partition corresponding to the boundary position of the first window from the server into memory and rendering it. This significantly reduces the amount of data loaded from the server into the client memory and rendered from the client memory into the window, thereby reducing data processing time. In addition, when an object edits the content of the online collaborative canvas, it is only necessary to reload the edited content into the client memory, which reduces the memory usage of online collaborative canvas data processing and improves the data processing efficiency of the online collaborative canvas.

[0084] Other features and advantages of this disclosure will be set forth in the following description and will be apparent in part from the description or may be learned by practicing the disclosure. The objectives and other advantages of this disclosure may be realized and obtained by means of the structures particularly pointed out in the description, claims and drawings. Attached Figure Description

[0085] The accompanying drawings are provided to further understand the technical solutions of this disclosure and constitute a part of the specification. They are used together with the embodiments of this disclosure to explain the technical solutions of this disclosure and do not constitute a limitation on the technical solutions of this disclosure.

[0086] Figure 1 This is a system architecture diagram of the online collaborative whiteboard data processing method according to an embodiment of the present disclosure;

[0087] Figures 2A to 2C This is a schematic diagram of the interface for opening an online collaborative whiteboard according to an embodiment of this disclosure;

[0088] Figure 3 This is a general flowchart of the online collaborative whiteboard data processing method provided in the embodiments of this disclosure;

[0089] Figure 4A This is a schematic diagram of a window of the online collaborative whiteboard provided in an embodiment of this disclosure;

[0090] Figure 4B This is a schematic diagram of multiple partitions of the online collaborative whiteboard provided in this embodiment of the disclosure;

[0091] Figure 4C This is a schematic diagram of the memory provided in an embodiment of this disclosure;

[0092] Figure 4D This is a schematic diagram of the rendered window of the online collaborative canvas provided in this embodiment of the disclosure;

[0093] Figure 5 yes Figure 3 A flowchart for step 320, obtaining the partition location pointer for each partition;

[0094] Figure 6 yes Figure 5 Step 510 is a flowchart of dividing the online collaborative whiteboard into multiple partitions;

[0095] Figure 7 yes Figure 6 A diagram illustrating how the Chinese general divides the online collaborative whiteboard into multiple sections;

[0096] Figure 8 yes Figure 6 A flowchart illustrating how an online collaborative whiteboard is divided into partitions based on the number of partitions.

[0097] Figure 9 yes Figure 8 A diagram illustrating how an online collaborative whiteboard is divided into partitions based on the number of partitions.

[0098] Figure 10 yes Figure 5 Step 510 is a flowchart of dividing the online collaborative whiteboard into multiple partitions;

[0099] Figure 11A and Figure 11B yes Figure 5 A diagram illustrating how the Chinese general divides the online collaborative whiteboard into multiple sections;

[0100] Figure 12 yes Figure 10 A flowchart for step 1020, which determines the target merging scheme;

[0101] Figure 13 This is a flowchart of a method for generating candidate merging schemes provided in an embodiment of this disclosure;

[0102] Figure 14 yes Figure 13 A flowchart illustrating the method for generating candidate merging schemes;

[0103] Figure 15 yes Figure 3 A flowchart of step 340, which renders the window based on the content data of the first partition loaded into memory;

[0104] Figure 16 yes Figure 15 A general flowchart for rendering a window based on the content data of the first partition loaded into memory;

[0105] Figure 17 yes Figure 15 A flowchart for step 1520 determining that the data in the first partition of memory has expired;

[0106] Figure 18 This is a flowchart illustrating the determination of the first partition position pointer and the rendering of the window according to an embodiment of this disclosure;

[0107] Figure 19 yes Figure 18 Step 1810 is a flowchart that determines the intersection of windows and partitions;

[0108] Figure 20A and Figure 20B This is a schematic diagram illustrating step 1810's determination that the window and partition intersect;

[0109] Figure 21 yes Figure 18Step 1810 is another flowchart that determines the intersection of windows and partitions;

[0110] Figure 22 This is a flowchart of rendering a window based on overall content data, provided in an embodiment of this disclosure;

[0111] Figure 23A and Figure 23B yes Figure 22 A schematic diagram illustrating how a window is rendered based on overall content data;

[0112] Figure 24 yes Figure 22 A flowchart of step 2240, which involves rendering the window;

[0113] Figure 25 This is a flowchart illustrating a supplementary retrieval process during the use of the online collaborative whiteboard provided in this embodiment of the disclosure;

[0114] Figure 26A and Figure 26B yes Figure 25 A diagram illustrating the supplementary data retrieval process during the use of the online collaborative drawing board;

[0115] Figure 27 This is a flowchart illustrating the data processing related to the editing operation provided in this embodiment of the disclosure;

[0116] Figure 28A This is a schematic diagram of an interface for editing operations provided in an embodiment of this disclosure;

[0117] Figure 28B This is a schematic diagram of the memory used for editing operations provided in an embodiment of this disclosure;

[0118] Figure 29 yes Figure 27 A diagram illustrating the data processing involved in editing operations;

[0119] Figure 30 This is a flowchart illustrating a condition for triggering server updates based on edited content data, as provided in an embodiment of this disclosure.

[0120] Figure 31 yes Figure 30 A flowchart showing how the edited content data is sent to the server;

[0121] Figure 32 This is an implementation detail diagram of an online collaborative whiteboard data processing method according to an embodiment of the present disclosure;

[0122] Figure 33 This is a block diagram of an online collaborative whiteboard data processing apparatus according to an embodiment of the present disclosure;

[0123] Figure 34 This is a terminal structure diagram of an online collaborative whiteboard data processing method implemented according to an embodiment of the present disclosure;

[0124] Figure 35 This is a server structure diagram of an online collaborative whiteboard data processing method implemented according to embodiments of the present disclosure. Detailed Implementation

[0125] To make the objectives, technical solutions, and advantages of this disclosure clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and are not intended to limit the scope of this disclosure.

[0126] Before providing a further detailed description of the embodiments of this disclosure, the terms and concepts used in these embodiments are explained, and they are subject to the following interpretations:

[0127] Online Collaborative Paintboard: Online collaboration refers to multiple individuals working together via the internet or other communication methods to complete a task. An online collaborative paintboard is a paintboard that provides online collaboration capabilities for multiple individuals. Each individual can edit on the paintboard to exchange information. Furthermore, individuals can draw images, place text boxes, create tables, and more on the paintboard.

[0128] Memory (RAM): A crucial component of a computer, also known as internal memory or main memory, it temporarily stores data processed by the Central Processing Unit (CPU) and data exchanged with external storage devices such as hard drives. It acts as a bridge between external storage and the CPU. All programs in a computer run in RAM, and the performance of RAM directly impacts the overall performance of the computer. Once the computer starts running, the operating system retrieves the necessary data from RAM to the CPU for processing. After the processing is complete, the CPU sends the result back. Furthermore, the operation of RAM determines the overall speed of the computer.

[0129] Currently, in online collaborative canvases, once an object opens the canvas, all the content data of the canvas stored on the server needs to be loaded into the client's memory at once, and then the page is rendered using all the content data in the client's memory. Furthermore, once an object edits the content of the online collaborative canvas, the edited content needs to be reflected in all the content data in memory, and then sent to the client's memory to replace all the content data in the client's memory. This is especially problematic when the amount of data in the online collaborative canvas is large, consuming a significant amount of client memory, and the processing efficiency of the online collaborative canvas is low, requiring objects to wait for a considerable amount of time.

[0130] Based on this, embodiments of this disclosure provide an online collaborative whiteboard data processing method, related apparatus, and medium. The online collaborative whiteboard data processing method provided by embodiments of this disclosure can reduce the memory footprint of online collaborative whiteboard data processing and improve data processing efficiency.

[0131] System architecture and scenario description of the embodiments disclosed herein

[0132] Figure 1 This is a system architecture diagram of the online collaborative whiteboard data processing method according to embodiments of the present disclosure. It includes a target terminal 110, an Internet connection 120, a gateway 130, and a server 140, etc.

[0133] Object terminal 110 is a device used to store the content data of the online collaborative whiteboard in memory and display the content data in the window of the online collaborative whiteboard. Additionally, objects can open, edit, and save the online collaborative whiteboard at object terminal 110. Object terminal 110 can take various forms, including desktop computers, laptops, PDAs (personal digital assistants), mobile phones, vehicle terminals, home theater terminals, dedicated terminals, and graphics tablets. Furthermore, it can be a single device or a collection of multiple devices. For example, multiple devices can be connected via a local area network, sharing a single display device to work collaboratively, forming a single terminal. The terminal can also communicate with the Internet 120 via wired or wireless means to exchange data.

[0134] Gateway 130, also known as an internetwork connector or protocol converter, is a computer system or device that enables network interconnection at the transport layer and acts as a translator. It bridges the gap between two systems using different communication protocols, data formats, languages, or even completely different architectures. Gateway 130 also provides filtering and security functions. Messages sent from target terminal 110 to server 140 are forwarded to the corresponding server 140 via gateway 130. Messages sent from server 140 to target terminal 110 are also forwarded to the corresponding target terminal 110 via gateway 130.

[0135] Server 140 refers to a computer system capable of providing online collaborative whiteboard data processing services to object terminal 110. Compared to object terminal 110, server 140 has higher requirements in terms of stability, security, and performance. Server 140 can be a single high-performance computer in a network platform, a cluster of multiple high-performance computers, a portion of a single high-performance computer (e.g., a virtual machine), or a combination of portions of multiple high-performance computers (e.g., virtual machines). Server 140 can also communicate with the Internet 120 via wired or wireless means to exchange data.

[0136] The embodiments disclosed herein can be applied in various scenarios, such as Figures 2A to 2C The example shown is of opening an online collaborative whiteboard.

[0137] Figure 2A This is a schematic diagram of the entire content data interface of the online collaboration canvas. In actual use, users typically adjust the viewport of the online collaboration canvas as needed to display the required content data. (Refer to...) Figure 2B Even if the online collaboration board window only includes a portion of the online collaboration board's content, when an object opens the online collaboration board, the online collaboration board data processing methods in related technologies need to... Figure 2A Loading and rendering all the text data shown would take a significant amount of time. Figure 2C This is a schematic diagram illustrating the online collaboration whiteboard data processing method provided in this embodiment when an online collaboration whiteboard is opened. This embodiment only loads and renders a portion of the content data within the online collaboration whiteboard window, without loading the entire text data. In this case, for... Figure 2A In the online collaborative whiteboard, even though the window in this embodiment is the same as that in related technologies, the loading time from opening the online collaborative whiteboard to displaying the window content in related technologies is 7 seconds, while in this embodiment it only takes 3 seconds. It is clear that compared with related technologies, the online collaborative whiteboard data processing method of this embodiment can reduce data processing time and improve data processing efficiency.

[0138] It should be understood that the above description only illustrates some application scenarios of this disclosure. The business scenarios to which this disclosure can be applied may include, but are not limited to, the specific embodiments described above.

[0139] General Description of Embodiments in this Disclosure

[0140] It is important to emphasize that the embodiments of this disclosure are applicable to various application scenarios, such as opening, editing, and saving online collaborative canvases. Related technologies require that when an object opens an online collaborative canvas, all the text data of the online collaborative canvas stored on the server be loaded into the client's memory at once, and then the page is rendered using all the text data in the client's memory. Furthermore, when an object edits the content of the online collaborative canvas, the edited content needs to be reflected in all the text data in memory. Especially when the amount of data in the online collaborative canvas is large, it consumes a significant amount of client memory, and the processing efficiency of the online collaborative canvas is low, requiring the object to wait for a considerable time. Some embodiments of this disclosure provide an online collaborative canvas data processing method, related apparatus, and medium, which can reduce the memory consumption of online collaborative canvas data processing and improve data processing efficiency.

[0141] The online collaboration canvas data processing method responds to the opening of the online collaboration canvas by processing its data to render the content data of the corresponding partition to the window. This method reduces the memory footprint of online collaboration canvas data processing and improves its efficiency.

[0142] The online collaborative whiteboard data processing method of this disclosure can be executed on the target terminal 110, or on the server 140, or partly on the target terminal 110 and partly on the server 140.

[0143] like Figure 3 As shown, according to one embodiment of this disclosure, the online collaborative whiteboard data processing method includes:

[0144] Step 310: In response to the opening operation of the online collaboration artboard, obtain the position of the first window boundary, which is the positioning of the window boundary of the online collaboration artboard on the online collaboration artboard.

[0145] Step 320: Obtain the partition position pointer of each partition in the online collaborative canvas;

[0146] Step 330: Compare the first window boundary position with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position;

[0147] Step 340: Load the content data of the first partition corresponding to the first partition position pointer into memory, and render the window based on the content data of the first partition loaded into memory.

[0148] Steps 310 to 340 are described in detail below.

[0149] In step 310, in response to the opening operation of the online collaboration canvas, the first window boundary position is obtained, which is the positioning of the window boundary of the online collaboration canvas on the online collaboration canvas.

[0150] A window is the visible part of an online collaboration board; it can also be understood as the content displayed on the client's screen. A window can display part or all of the content of the online collaboration board. The first window's boundary position is the location of the online collaboration board's window boundary within the online collaboration board. (See reference...) Figure 4A The window is used to display part of the content of the online collaboration canvas, and the boundary of the window is positioned on the online collaboration canvas as the first window boundary position.

[0151] The shape of the online collaboration board window can be customized as needed. In practice, the online collaboration board window is typically rectangular.

[0152] In addition, in response to the opening of the online collaboration artboard, the window to be displayed can be the window that was last closed, a fixed window position set as needed, or the window position selected by the object when opening the online collaboration artboard.

[0153] In step 320, the partition position pointer of each partition in the online collaborative canvas is obtained.

[0154] The partitioning is based on the online collaboration canvas. The online collaboration canvas is divided into multiple partitions, each of which corresponds to the content data of the online collaboration canvas. Multiple partitions can be combined to form a complete online collaboration canvas.

[0155] Each partition location pointer corresponds one-to-one with a partition. Since the content data of the online collaborative canvas is stored in memory, the partition location pointer points to the memory storage address of the content data corresponding to that partition location pointer.

[0156] like Figure 4B As shown, the online collaborative whiteboard is divided into four sections: Section 1, Section 2, Section 3, and Section 4. The corresponding section position pointers are shown below. Figure 4C As shown, each partition is set with a corresponding partition location pointer, and the memory address pointed to by each partition location pointer stores the content data corresponding to the partition location pointer.

[0157] It should be noted that the number of partitions in the online collaborative whiteboard can be set as needed. Furthermore, to maximize the processing efficiency of the online collaborative whiteboard, partitioning should be based on factors such as the volume and complexity of the content data.

[0158] In step 330, the first window boundary position is compared with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position.

[0159] The address pointed to by the first partition location pointer is the memory address where the content data within the online collaboration whiteboard window is stored.

[0160] Since the online collaboration canvas is divided into multiple partitions, and the window is located on the online collaboration canvas, the window must intersect with at least one partition. By comparing the boundary position of the first window with the partition position pointers of each partition, it is possible to determine which specific partition intersects with the window and the position of the intersection. Then, based on the partition position pointers of the partitions that intersect with the window, the first partition position pointer that matches the boundary position of the first window can be determined.

[0161] Reference Figure 4A and Figure 4BThe first, second, third, and fourth partitions of the online collaborative canvas all have overlapping portions with the viewport. Then, for each partition's location pointer, the memory address of the overlapping portion between the partition and the viewport is determined, and the memory addresses of multiple overlapping portions are used as the first partition location pointer to match the boundary position of the first viewport.

[0162] In step 340, the content data of the first partition, which corresponds to the first partition position pointer, is loaded into memory, and the window is rendered based on the content data of the first partition loaded into memory.

[0163] The first partition's content data refers to the content data of the online collaborative canvas stored at the memory address pointed to by the first partition's location pointer. The content data refers to the data corresponding to the content in the online collaborative canvas, such as... Figure 4B Data containing arrows, ellipses, cylinders, and cubes can be called content data.

[0164] After determining the first partition position pointer corresponding to the boundary position of the first viewport, the content of the first partition stored at the first partition position pointer is loaded into memory. Then, the viewport is rendered based on the first partition content data loaded into memory, so that the viewport displays the first partition content data. (See reference...) Figure 4C The memory address pointed to by the first partition location pointer stores the content data of the first partition. This first partition content data is rendered to the viewport so that the viewport displays the first partition content data. The rendered online collaboration whiteboard viewport looks like this: Figure 4D As shown.

[0165] Reference Figures 4A to 4D When an object opens the online collaboration canvas, the first window boundary position is obtained, i.e., the location of the online collaboration canvas window boundary on the online collaboration canvas. Furthermore, the online collaboration canvas is divided into multiple partitions, and the content data corresponding to each partition is stored in memory. This embodiment of the disclosure provides partition position pointers corresponding to the partitions, each partition position pointing to the memory address of the content data corresponding to the partition position pointer. The first window boundary position is compared with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position. Then, the first partition content data stored corresponding to the first partition position pointer is loaded into memory, and the window is rendered based on the first partition content data loaded into memory so that the window displays the first partition content data.

[0166] In the embodiments described in steps 310 to 340 above, the online collaboration canvas is divided into multiple partitions, and each partition is assigned a partition position pointer. The memory address pointed to by the partition position pointer stores the partition content data corresponding to the partition position pointer. In response to the opening operation of the online collaboration canvas, the position of the window boundary of the online collaboration canvas on the online collaboration canvas is obtained, and this position is used as the first window boundary position. Since the online collaboration canvas has been divided into multiple partitions, and the window is located on the online collaboration canvas, the window has an intersection with at least one of the multiple partitions. By comparing the first window boundary position with the partition position pointers of the multiple partitions, the first partition position pointer matching the first window boundary position can be determined based on the intersection of the window with each partition. Afterwards, it is only necessary to load the first partition content data stored corresponding to the first partition position pointer into memory, and render the window based on the first partition content data loaded into memory, without loading and rendering all the main text data. Compared with related technologies, the embodiments of this disclosure only require loading the content data of the first partition corresponding to the boundary position of the first window from the server into memory and rendering it. This significantly reduces the amount of data loaded from the server into the client memory and rendered from the client memory into the window, thereby reducing data processing time. In addition, when an object edits the content of the online collaborative canvas, it is only necessary to reload the edited content into the client memory, which reduces the memory usage of online collaborative canvas data processing and improves the data processing efficiency of the online collaborative canvas.

[0167] The above is a general description of steps 310 to 340. Since steps 310 and 330 have been explained in detail above, only specific embodiments of steps 320 and 340 will be described in detail below.

[0168] Detailed description of step 320

[0169] In step 320, the partition position pointer of each partition in the online collaborative canvas is obtained.

[0170] In one embodiment, reference is made to Figure 5 Step 320 includes:

[0171] Step 510: Based on the multiple functional units in the online collaborative whiteboard, divide the online collaborative whiteboard into multiple partitions, with the number of partitions not exceeding the number of functional units.

[0172] Step 520: Assign a partition location pointer to each partition.

[0173] Steps 510 and 520 are described in detail below.

[0174] In step 510, based on the multiple functional units in the online collaborative whiteboard, the online collaborative whiteboard is divided into multiple partitions, and the number of partitions is no greater than the number of functional units.

[0175] Functional units refer to the various elements in an online collaboration canvas, which can be graphics, text boxes, tables, etc. Each functional unit performs a corresponding function in the online collaboration canvas, such as text description in a text box, numerical display in a table, and direction of an arrow graphic. Functional units of the same shape may have different functions; even if text boxes all perform the function of text description, the objects and content described by different text boxes may differ. (See reference...) Figure 4B Arrows, ellipses, cylinders, and cubes are all functional units in the online collaborative drawing board.

[0176] The online collaborative whiteboard is divided into multiple partitions, and the number of partitions must not exceed the number of functional units, so that each partition contains at least one functional unit, thereby reducing the existence of partitions without content data and reducing the generation of redundant partitions.

[0177] In step 520, a partition location pointer is assigned to each partition.

[0178] After determining the number of partitions, a corresponding number of partition location pointers are set to ensure a one-to-one correspondence between partitions and partition location pointers. After the partition's content data is loaded into memory, the partition location pointers are modified accordingly so that they point to the memory storage address of the partition's content data corresponding to that pointer.

[0179] Reference Figure 4B After defining the multiple partitions of the online collaborative canvas, set a partition position pointer for each of the first, second, third, and fourth partitions. (Refer to...) Figure 4C After loading the content data corresponding to each partition into memory, the partition location pointer is set to point to the memory storage address of the content data of the partition corresponding to the partition location pointer.

[0180] The embodiments of steps 510 and 520 described above divide the online collaboration canvas into multiple partitions based on multiple functional units, and assign a partition position pointer to each partition. The number of partitions is no greater than the number of functional units. This embodiment of the disclosure divides the online collaboration canvas into multiple partitions based on functional units, so that the first partition position pointer of the window can be determined based on the partition position pointers, thereby improving data processing efficiency. Furthermore, keeping the number of partitions no greater than the number of functional units reduces the existence of partitions without content and reduces the generation of redundant partitions.

[0181] The above is a general description of steps 510 and 520. Since step 520 has been described in sufficient detail above, only the specific implementation process of step 510 will be described in detail below.

[0182] In step 510, based on the multiple functional units in the online collaborative whiteboard, the online collaborative whiteboard is divided into multiple partitions, and the number of partitions is no greater than the number of functional units.

[0183] In one embodiment, reference is made to Figure 6 Step 510 includes:

[0184] Step 610: Determine the number of functional units in the online collaborative whiteboard;

[0185] Step 620: Input the online collaborative canvas into the complexity prediction model to obtain the content complexity of the online collaborative canvas;

[0186] Step 630: Obtain the scenario type to which the online collaboration whiteboard is applied;

[0187] Step 640: Based on the number of functional units, the complexity of the online collaborative whiteboard content, and the scene type, determine the number of partitions. The number of partitions shall not exceed the number of functional units.

[0188] Step 650: Divide the online collaborative whiteboard into partitions based on the number of partitions.

[0189] Steps 610 to 650 are described in detail below.

[0190] In step 610, the number of functional units in the online collaborative whiteboard is determined.

[0191] The number of functional units refers to the number of functional units in an online collaborative whiteboard. Figure 4B The number of functional units in the online collaborative whiteboard is 4.

[0192] In step 620, the online collaborative whiteboard is input into the complexity prediction model to obtain the content complexity of the online collaborative whiteboard.

[0193] A complexity prediction model is a model that can predict and analyze the complexity of content in an online collaborative whiteboard, thereby obtaining the complexity of the online collaborative whiteboard content. To facilitate the analysis of online collaborative whiteboards based on content complexity, the complexity prediction model typically outputs a numerical value, thus quantifying the complexity of the online collaborative whiteboard content.

[0194] It should be noted that the content complexity of an online collaborative whiteboard is determined based on the number of functional units, the amount of information contained in each functional unit, and the number of lines in each functional unit. For example, for a text box, the more text inside the text box, the higher its content complexity. Similarly, functional units with more lines have higher content complexity.

[0195] In step 630, the scenario type to which the online collaborative canvas is applied is obtained.

[0196] Scenario type refers to the application scenario of the online collaborative whiteboard. Different scenario types require different levels of granularity in the classification of online collaborative whiteboards. For example, online collaborative whiteboards are used in two scenarios: teaching and data statistics. Typically, data statistics scenarios involve more data than teaching scenarios, requiring a higher level of granularity.

[0197] In step 640, the number of partitions is determined based on the number of functional units, the complexity of the online collaborative whiteboard content, and the scene type. The number of partitions is not greater than the number of functional units.

[0198] The number of partitions is determined based on the number of functional units, the complexity of the online collaborative canvas content, and the scene type, where the number of functional units and the complexity of the online collaborative canvas content are in numerical form. Therefore, to facilitate the calculation of the number of partitions, this embodiment establishes a mapping relationship between scene type and the required level of detail for the scene, and sets up a mapping table through this mapping relationship to determine the required level of detail for the scene corresponding to the scene type using a lookup table method.

[0199] There are several ways to determine the number of partitions based on the number of functional units, the complexity of the online collaboration whiteboard content, and the scene type. For example, a weighted sum of the number of functional units, the complexity of the online collaboration whiteboard content, and the scene type can be used to determine the number of partitions. Alternatively, a function expression can be created before the number of functional units, the complexity of the online collaboration whiteboard content, the scene type, and the number of partitions.

[0200] Assuming this embodiment determines the number of partitions using a weighted summation method, the number of functional units is 8, with a weight of 0.6; the online collaboration whiteboard content complexity is 5 (out of 10), with a weight of 0.2; and the scene refinement required for the scene type is 2.5 (out of 8), with a weight of 0.2. Since the number of functional units is 8, the maximum number of partitions is 8. Therefore, the online collaboration whiteboard content complexity is converted to 4, and the scene refinement required is converted to 2. Then, a weighted summation is performed on the number of functional units, the online collaboration whiteboard content complexity, and the scene type, resulting in 6. Therefore, the number of partitions is 6.

[0201] In step 650, the online collaborative whiteboard is divided into partitions based on the number of partitions.

[0202] After determining the number of partitions, the online collaboration will be divided into the specified number of partitions.

[0203] It should be noted that the distribution of multiple functional units in the online collaborative canvas is not uniform. To ensure that each partition contains at least one functional unit, the number of partitions obtained may be less than the number of partitions calculated in step 640.

[0204] Reference Figure 7 In this embodiment, the number of functional units and scene types of the online collaborative canvas are obtained, and all content data of the online collaborative canvas is input into a complexity prediction model to obtain the content complexity of the online collaborative canvas. Then, based on the number of functional units, the content complexity of the online collaborative canvas, and the scene type, the number of partitions is determined to partition the online collaborative canvas.

[0205] The embodiments of steps 610 to 650 above determine the number of partitions of the online collaborative canvas based on the number of functional units, the complexity of the online collaborative canvas content, and the scene type. Determining the number of partitions can divide the online collaborative canvas into multiple partitions, improve data processing efficiency, and at the same time reduce the problem of low efficiency caused by multiple memory accesses during the loading process due to too many partitions.

[0206] The above is a general description of steps 610 to 650. Since steps 610 to 640 have been described in sufficient detail above, only the specific implementation process of step 650 will be described in detail below.

[0207] In step 650, the online collaborative whiteboard is divided into partitions based on the number of partitions.

[0208] In one embodiment, reference is made to Figure 8 Step 650 includes:

[0209] Step 810: Input multiple functional units into the partition importance prediction model to obtain the importance of each functional unit;

[0210] Step 820: Based on importance, assign a core functional unit to each partition, and identify the functional units other than the core functional unit among multiple functional units as edge functional units;

[0211] Step 830: Among multiple core functional units, determine the adjacent core functional units of the edge functional units;

[0212] Step 840: Divide the edge functional unit into multiple sub-edge functional units according to the area ratio of the adjacent core functional units, and expand each sub-edge functional unit into a corresponding adjacent core functional unit. Each expanded core functional unit is then treated as a partition.

[0213] Steps 810 to 840 are described in detail below.

[0214] In step 810, multiple functional units are input into the partition importance prediction model to obtain the importance of each functional unit.

[0215] A partition importance prediction model is a model that predicts the importance of each functional unit. Each partition includes at least one functional unit, and the importance output by the partition importance prediction model is used to determine whether each functional unit can be considered a complete functional unit in the partition.

[0216] In step 820, a core functional unit is assigned to each partition based on importance, and functional units other than the core functional unit among multiple functional units are identified as edge functional units.

[0217] The core functional unit is the most important functional unit in a partition. It is typically located at the center of the partition, and all its data resides within that partition. When a partition contains only one complete functional unit, that unit is considered the core functional unit. For example, Figure 9 Core functional unit 1 and core functional unit 2 are the only complete functional units in their corresponding partitions.

[0218] Edge functional units are units other than core functions within a partition. The content data of an edge functional unit can be distributed across one partition or multiple partitions. For example, all the content data of edge functional units 4 and 2 are located in their respective partitions, while the content data of edge functional units 1 and 3 are distributed across two adjacent partitions.

[0219] The core functional units are determined based on importance. In this embodiment, the functional units are arranged in descending order of importance, and the first few functional units in each section are designated as the core functional units. (Refer to...) Figure 9 Compared to other types of functional units, text boxes are relatively more important. Therefore, three text boxes are designated as core functional units and assigned to the first, second, and third sections.

[0220] In step 830, among the multiple core functional units, the adjacent core functional units of the edge functional units are determined.

[0221] Connecting core functional units refers to core functional units adjacent to edge functional units. (See reference...) Figure 9 The adjacent core functional units of edge functional unit 1 are core functional units 1 and 2, and the adjacent core functional units of edge functional unit 3 are core functional units 2 and 3.

[0222] In step 840, the edge functional unit is divided into multiple sub-edge functional units according to the area ratio of the adjacent core functional units, and each sub-edge functional unit is expanded into a corresponding adjacent core functional unit. Each expanded core functional unit is then treated as a partition.

[0223] Sub-edge functional units are divided based on their adjacent core functional units. The number of sub-edge functional units equals the number of adjacent core functional units, and the edge functional units are divided according to the area ratio of their adjacent core functional units. For example, if the adjacent core functional units of edge functional unit 1 are core functional units 1 and 2, and the area ratio of core functional unit 1 to core functional unit 2 is 2:3, then edge functional unit 1 is divided into sub-edge functional units 1 and 2, with an area ratio of 3:2. Sub-edge functional unit 1 corresponds to core functional unit 1, and sub-edge functional unit 2 corresponds to core functional unit 2. This method reduces the area difference of functional units in each partition, making the content data contained in each partition as equal as possible, thus improving the fairness of partitioning in the online collaborative canvas.

[0224] In one embodiment, edge functional units can also be divided according to the ratio of the distance between the edge functional unit and the connecting core functional unit. For example, if the adjacent core functional units of edge functional unit 1 are core functional units 1 and 2, and the distance between edge functional unit 1 and core functional unit 1 is 5, and the distance between edge functional unit 1 and core functional unit 2 is 3, then edge functional unit 1 can be divided into sub-edge functional unit 1 and sub-edge functional unit 2, with an area ratio of 3:5. Sub-edge functional unit 1 corresponds to core functional unit 1, and sub-edge functional unit 2 corresponds to core functional unit 2. This scheme reduces the area difference between the various partitions, making the areas of each partition as equal as possible, thereby enabling rapid determination of the boundary positions of each partition.

[0225] It should be noted that the specific division of edge functional units can be based on the location of core functional units. When multiple core functional units are evenly distributed in the online collaboration canvas, the division can be based on the ratio of the distance between edge functional units and connected core functional units, or the area ratio of adjacent core functional units. When multiple core functional units are centrally distributed in the online collaboration canvas, the areas of each partition are unlikely to be equal; therefore, the division can be based on the area ratio of adjacent core functional units.

[0226] It should be noted that, referring to Figure 9In this embodiment, edge functional unit 1 is divided into sub-edge functional unit 1 and sub-edge functional unit 2, wherein sub-edge unit function 1 is extended into core functional unit 1, and sub-edge unit function 2 is extended into core functional unit 2. Edge functional unit 2 is divided into sub-edge functional unit 3 and sub-edge functional unit 4, wherein sub-edge unit function 3 is extended into core functional unit 2, and sub-edge unit function 4 is extended into core functional unit 3.

[0227] In the embodiments described in steps 810 to 840 above, the edge functional unit is divided into multiple sub-edge functional units according to the area ratio of adjacent core functional units, and then expanded into a corresponding adjacent core functional unit, so that each expanded core functional unit is considered as a partition. This method reduces the area difference of functional units in each partition, making the content data contained in each partition as equal as possible, improving the fairness of partitioning the online collaborative canvas. Regardless of where the boundary of the first window is located on the online collaborative canvas, the computational amount of determining the content data of the first partition is the same, thus improving the fairness of data processing.

[0228] In another embodiment, reference Figure 10 Step 510 includes:

[0229] Step 1010: Merge a portion of adjacent functional units according to multiple candidate merging schemes to obtain multiple merged results. Each merged result includes multiple merged functional units.

[0230] Step 1020: Based on the multiple merged results corresponding to multiple candidate merge schemes, determine the target merge scheme;

[0231] Step 1030: Determine multiple partitions as multiple merged functional units in the target merging scheme.

[0232] Steps 1010 to 1030 are described in detail below.

[0233] In step 1010, a portion of adjacent functional units are merged according to multiple candidate merging schemes to obtain multiple merged results, each of which includes multiple merged functional units.

[0234] Candidate merging schemes refer to pre-set schemes for merging multiple functional units from multiple online collaborative whiteboards.

[0235] The merged result corresponds to the candidate merge scheme. The merged result refers to the result obtained by partitioning and merging multiple functional units in the online collaboration whiteboard according to the candidate merge scheme. The merged result includes all content data of the online collaboration whiteboard. A merged functional unit refers to the result obtained by merging one or more functional units in the online collaboration whiteboard. A merged functional unit only includes a portion of the content data of the online collaboration whiteboard, and each merged result includes multiple merged functional units.

[0236] Figure 11A It is the merged result corresponding to candidate merge scheme 1. Figure 11B This is the merged result corresponding to candidate merge scheme 2. The merged result of candidate merge scheme 1 includes two merged functional units, one of which includes functional units 1 and 2, and the other includes functional units 3, 4, 5, 6, and 7. The merged result of candidate merge scheme 2 includes three merged functional units, the first of which includes functional units 1 and 2, the second of which includes functional units 3, 4, and 5, and the third of which includes functional units 6 and 7.

[0237] In step 1020, the target merging scheme is determined based on the multiple merged results corresponding to the multiple candidate merging schemes.

[0238] After identifying multiple candidate merging schemes and their corresponding merged results, these results are compared to determine the target merging scheme. The target merging scheme demonstrates superior partitioning performance on the online collaborative whiteboard compared to other candidate schemes. For example, Figure 11A The merged result includes two merged functional units, and the number of functional units and the amount of content data in the two merged functional units differ significantly. Figure 11B The number of functional units and the amount of content data in the three merged functional units are relatively similar after the merger. Therefore, Figure 11B The candidate merging schemes in the data are more effective at partitioning online collaborative whiteboards and can be used as the target merging schemes.

[0239] In step 1030, the multiple merged functional units in the target merging scheme are determined as multiple partitions.

[0240] This embodiment of the disclosure divides the online collaborative whiteboard into multiple partitions based on a target merging scheme. Specifically, each merged functional unit corresponding to the target merging scheme can be considered as a partition, and the number of merged functional units is equal to the number of partitions.

[0241] If Figure 11BCandidate merging scheme 2 is selected as the target merging scheme, which divides the online collaborative whiteboard into three partitions. The first partition includes functional unit 1 and functional unit 2, the second partition includes functional units 3, 4 and 5, and the third partition includes functional units 6 and 7.

[0242] The embodiments of steps 1010 to 1030 above determine the target merging scheme based on multiple merged results corresponding to multiple candidate merging schemes, and determine multiple partitions of the online collaborative whiteboard based on multiple merged functional units in the target merging scheme. In the embodiments of this disclosure, the functional units within multiple partitions are all complete functional units, that is, the content data of the functional units are all located in the same partition, which can maintain the integrity of the content data of each functional unit, reduce data loss during the segmentation process, and improve the security of data processing.

[0243] The above is a general description of steps 1010 to 1030. The specific implementation process of step 1020 is described in detail below.

[0244] In step 1020, the target merging scheme is determined based on the multiple merged results corresponding to the multiple candidate merging schemes.

[0245] In one embodiment, reference is made to Figure 12 Step 1020 includes:

[0246] Step 1210: Determine the area variance of multiple merged functional units in the merged result corresponding to each candidate merging scheme;

[0247] Step 1220: Based on the area variance, determine the target merging scheme from multiple candidate merging schemes.

[0248] The following is a general description of steps 1210 and 1220.

[0249] In step 1210, the area variance of multiple merged functional units in the merged result corresponding to each candidate merging scheme is determined.

[0250] For each candidate merge scheme, calculate the area variance of multiple merged functional units in the merged result. For example, for... Figure 11A Candidate merging scheme 1, assuming the area of ​​the merged functional unit 1 containing functional units 1 and 2 is 6, and the area of ​​the merged functional unit 2 containing functional units 3, 4, 5, and 7 is 10, first calculate the average area of ​​the two merged functional units, which is 8, and then calculate the area variance of the merged functional unit 1 and merged functional unit 2, which is 4. For Figure 11B The candidate merging scheme 2 shown has three functional units with equal areas after merging. Therefore, the area variance of the multiple functional units after merging corresponding to candidate merging scheme 2 is 0.

[0251] In step 1220, the target merging scheme is determined from multiple candidate merging schemes based on the area variance.

[0252] The smaller the area variance, the smaller the area difference between multiple merged functional units in the merged result corresponding to the candidate merging scheme. In this embodiment, the scheme with the smallest area variance is selected as the target merging scheme from multiple candidate merging schemes, thereby making the sizes of multiple partitions of the online collaborative whiteboard as consistent as possible.

[0253] Reference Figure 11A and Figure 11B The area variance of candidate merge scheme 2 is less than that of candidate merge scheme 1. Therefore, candidate merge scheme 2 is selected as the target merge scheme, and the final result is... Figure 11B Multiple partitions within.

[0254] The embodiments of steps 1210 and 1220 above determine the target merging scheme from multiple candidate merging schemes based on the area variance of multiple merged functional units in the merged result, so as to make the size of multiple partitions of the online collaborative canvas as consistent as possible, which facilitates the rapid determination of the boundary position of each partition, shortens the time for determining the intersection of the window and each partition, and improves the data processing efficiency of the online collaborative canvas.

[0255] In one embodiment, reference is made to Figure 13 The methods for generating candidate merging schemes include:

[0256] Step 1310: Determine the average area of ​​each partition based on the area of ​​the online collaborative canvas and the number of partitions;

[0257] Step 1320: Determine the lower limit of the merged area based on the average area of ​​the partitions;

[0258] Step 1330: Randomly select a functional unit from the functional units that have not been partitioned into a partition as the anchor functional unit;

[0259] Step 1340: Execute the first process, which includes: if the area of ​​the anchor functional unit is less than the lower limit of the merged area, arbitrarily select a candidate merged functional unit to merge with the anchor functional unit to expand the area of ​​the anchor functional unit, and return to the first process until the area of ​​the anchor functional unit is not less than the lower limit of the merged area, wherein the candidate merged functional unit is a functional unit that has not been partitioned among the adjacent functional units of the anchor functional unit.

[0260] Step 1350: Take the merged anchor function unit as a merged function unit and return to the step of randomly selecting a function unit from the function units that have not been partitioned into a partition as the anchor function unit.

[0261] Step 1360: Treat each merged functional unit as a partition to obtain candidate merging schemes.

[0262] Steps 1310 to 1360 are described in detail below.

[0263] In step 1310, the average area of ​​each partition is determined based on the area of ​​the online collaborative canvas and the number of partitions.

[0264] The average area of ​​a partition is the ratio of the area of ​​the online collaborative canvas to the number of partitions. For example, if the area of ​​the online collaborative canvas is 20 and the number of partitions is 4, then the average area of ​​the partitions is 5.

[0265] In step 1320, the lower limit of the merged area is determined based on the average area of ​​the partitions.

[0266] The lower limit of the merged area refers to the minimum area of ​​each merged functional unit in the merged result of the candidate merge scheme.

[0267] If the area difference between multiple merged functional units is too large, then when the window is located in the partition corresponding to the larger merged functional unit, it is necessary to compare the boundary position of the first window with the partition position pointer of that partition. Since the partition area is large, the amount of data that needs to be processed during the comparison process is also large, resulting in relatively low data processing efficiency. To reduce this situation, this embodiment of the disclosure sets a lower limit for the merged area to reduce the area variance of multiple merged functional units, making the areas of the multiple merged functional units as equal as possible. The specific value of the lower limit for the merged area can be set as needed.

[0268] In step 1330, one functional unit is randomly selected from the functional units that have not been partitioned into a partition as the anchor functional unit.

[0269] An anchor unit is a functional unit in an online collaborative canvas that is not currently in a partition. (For...) Figure 11B The online collaborative whiteboard allows users to choose any one of functional units 1 through 7 as the anchor functional unit if no partition is currently defined. If the first partition has already been defined, then any one of functional units 3 through 7 can be chosen as the anchor functional unit.

[0270] In step 1340, a first process is executed, which includes: if the area of ​​the anchor functional unit is less than the lower limit of the merged area, arbitrarily select a candidate merged functional unit to merge with the anchor functional unit to expand the area of ​​the anchor functional unit, and return to the first process until the area of ​​the anchor functional unit is not less than the lower limit of the merged area, wherein the candidate merged functional unit is a functional unit that has not been partitioned among the adjacent functional units of the anchor functional unit.

[0271] The first process refers to the process of merging and expanding the anchor functional units, and the area of ​​the merged and expanded anchor functional units is not less than the lower limit of the merged area.

[0272] The candidate merged functional unit is the functional unit adjacent to the anchor functional unit, and this functional unit is not located in any partition. Assume... Figure 11B The first partition has been determined. For functional unit 3, the candidate functional units to be merged are functional unit 5 and functional unit 4.

[0273] Reference Figure 14 If the area of ​​the anchor functional unit is less than the lower limit of the merged area, an arbitrary candidate merged functional unit adjacent to the anchor functional unit is selected and merged with the anchor functional unit, increasing the area of ​​the merged anchor functional unit. If the area of ​​the currently merged anchor functional unit is still less than the lower limit of the merged area, then candidate merged functional units are selected and merged with the anchor functional unit until the area of ​​the anchor functional unit is not less than the lower limit of the merged area.

[0274] Assumption Figure 11B Having determined the first partition, functional unit 3 is initially selected as the anchor functional unit. Since the area of ​​functional unit 3 is less than the lower limit of the merged area, functional unit 5 is selected as a candidate for merging and merged with functional unit 3. The merged anchor functional unit includes functional units 3 and 5, but its area is less than the lower limit of the merged area. Therefore, functional unit 4 is selected as a candidate for merging. At this point, the area of ​​the anchor functional unit including functional units 3, 4, and 5 is not less than the lower limit of the merged area, and it can be used as the final merged anchor functional unit obtained in the first process.

[0275] In step 1350, the merged anchor functional unit is taken as a merged functional unit, and the step of randomly selecting a functional unit from the functional units that have not been partitioned into a partition as the anchor functional unit is returned.

[0276] The merged anchor functional unit obtained from the first process is taken as a merged functional unit, and the step of randomly selecting a functional unit from the functional units that have not been partitioned into a partition is returned as the anchor functional unit. If there are still functional units that have not been partitioned into a partition in the current online collaboration canvas, steps 1330 and 1340 can be repeated until there are no functional units that have not been partitioned into a partition in the online collaboration canvas.

[0277] It should be noted that during the above steps, if the area of ​​the last merged functional unit of the online collaboration board is less than the lower limit of the merged area, the merged functional unit and all previous merged functional units can be discarded, and the online collaboration board can be re-divided.

[0278] In step 1360, each merged functional unit is treated as a partition to obtain candidate merging schemes.

[0279] The loop randomly selects a functional unit from the unpartitioned functional units as the anchor functional unit and executes the steps of the first process until there are no unpartitioned functional units left on the line collaboration canvas. At this point, multiple merged functional units are obtained, and each merged functional unit is treated as a partition to obtain candidate merging schemes.

[0280] Reference Figure 14 For online collaborative whiteboards, the ratio of the whiteboard's area to the number of partitions is first calculated to obtain the average area of ​​each partition, thus determining the lower limit of the merged area. Next, a functional unit is selected from the functional units not yet assigned to a partition as an anchor functional unit, and its area is checked against the lower limit. If the anchor functional unit's area is less than the lower limit, an arbitrary candidate merged functional unit is selected and merged with the anchor functional unit as a new anchor functional unit. The process of checking if the anchor functional unit's area is less than the lower limit is repeated until the anchor functional unit's area is not less than the lower limit. At this point, it is determined whether there are any functional units on the online collaborative whiteboard not yet assigned to a partition. If so, a new anchor functional unit is selected from the functional units not yet assigned to a partition, and the above steps are repeated until there are no functional units on the online collaborative whiteboard not yet assigned to a partition. If there are no functional units on the online collaborative whiteboard not yet assigned to a partition, the previously obtained merged functional units are treated as a single partition to obtain candidate merge schemes.

[0281] The embodiments of steps 1310 to 1360 above determine the average area of ​​the partitions based on the area of ​​the online collaboration canvas and the number of partitions, and then determine the lower limit of the merged area. The online collaboration canvas is divided based on the lower limit of the merged area, so that the area of ​​multiple merged functional units in the merged result corresponding to the final candidate merging scheme is not less than the lower limit of the merged area. This can reduce the number of candidate merging schemes, improve the division efficiency of the online collaboration canvas, and improve the data processing efficiency of the online collaboration canvas.

[0282] Detailed description of step 340

[0283] In step 340, the content data of the first partition, which corresponds to the first partition position pointer, is loaded into memory, and the window is rendered based on the content data of the first partition loaded into memory.

[0284] In one embodiment, reference is made to Figure 15 Step 340 includes:

[0285] Step 1510: If it is determined that there is data in the first partition in memory and the data in the first partition has not expired, render the window based on the data in the first partition in memory;

[0286] Step 1520: If it is determined that there is no first partition content data in memory, or that the first partition content data in memory has expired, load the first partition content data from the server into memory, and render the window based on the first partition content data loaded into memory.

[0287] Steps 1510 and 1520 are described in detail below.

[0288] In step 1510, if it is determined that there is content data of the first partition in memory and the content data of the first partition has not expired, the window is rendered based on the content data of the first partition in memory.

[0289] The first partition's content data not being expired means that the first partition's content data in memory is the same as the first partition's content data on the server. Therefore, if the first partition's content data exists in memory and has not expired, it can be rendered to the window.

[0290] In step 1520, if it is determined that there is no first partition content data in memory, or that the first partition content data in memory has expired, the first partition content data is loaded from the server into memory, and the window is rendered based on the first partition content data loaded into memory.

[0291] The absence of first partition content data in memory indicates that the online collaboration whiteboard stored in memory has no content data in the window, and the window will appear blank. Expired first partition content data in memory means that the first partition content data in memory differs from the first partition content data on the server. In this case, it is necessary to load the latest first partition content data from the server into memory and then render the loaded first partition content data in memory to the window.

[0292] Reference Figure 16 After determining the location pointer of the first partition corresponding to the window, the system accesses the address pointed to by the first partition location pointer in memory. First, it checks if the first partition's content data exists in memory. If it does, it checks if the first partition's content data in memory is expired. Only if the first partition's content data exists in memory and is not expired, is the window rendered based on the first partition's content data in memory. Otherwise, the first partition's content data needs to be loaded from the server into memory for rendering.

[0293] In the embodiments of steps 1510 and 1520 above, the window is rendered only if the first partition content data exists in memory and has not expired. Conversely, if the first partition content data is not available in memory, the window is rendered based on the first partition content data in memory. This method ensures that the first partition content data used for rendering the window is always up-to-date, guaranteeing the correctness of the content displayed in the window and improving the accuracy of online collaborative whiteboard data processing.

[0294] The above is a general description of steps 1510 and 1520. Since step 1510 has been described in sufficient detail above, the specific implementation process of step 1520 will be described in detail below.

[0295] In step 1520, if it is determined that there is no first partition content data in memory, or that the first partition content data in memory has expired, the first partition content data is loaded from the server into memory, and the window is rendered based on the first partition content data loaded into memory.

[0296] In one embodiment, reference is made to Figure 17 Step 1520, determining that the data in the first partition of memory has expired, includes:

[0297] Step 1710: Obtain the first version number of the first partition's content data from memory;

[0298] Step 1720: Obtain the second version number of the first partition's content data from the server;

[0299] Step 1730: If the first version number is less than the second version number, determine that the data in the first partition in memory has expired.

[0300] Steps 1710 to 1730 are described in detail below.

[0301] In step 1710, the first version number of the first partition content data is obtained from memory.

[0302] The first version number is the version number of the data in the first partition of memory.

[0303] Data in online collaboration boards is assigned a version number upon saving to differentiate data saved at different times. The version number is assigned based on the saving time of the content data in the online collaboration board; the more recent the saving time, the higher the version number.

[0304] It should be noted that content data in the online collaboration whiteboard can be saved manually by the object or automatically at preset intervals by the online collaboration whiteboard.

[0305] In step 1720, the second version number of the content data of the first partition is obtained from the server.

[0306] The second version number is the version number of the content data in the first partition of the server.

[0307] In step 1730, if the first version number is less than the second version number, it is determined that the data in the first partition in memory has expired.

[0308] The closer the save time is to the current time, the larger the version number. Therefore, if the first version number is less than the second version number, the data in the first partition of memory is not the latest data, meaning it has expired. Conversely, if the first version number is greater than the second version number, the data in the first partition of memory has not expired.

[0309] If the first version number is 7.0 and the second version number is 8.0, then the data in the first partition of memory has expired. If both the first and second version numbers are 8.0, then the data in the first partition of memory has not expired.

[0310] Reference Figure 16 In this embodiment of the disclosure, after determining that the first partition content data exists in memory, a first version number of the first partition content data in memory and a second version number of the first partition content data in the server are obtained. When the first version number is less than the second version number, the first partition content data is loaded from the server into memory, and the window is rendered based on the first partition content data loaded into memory. When the first version number is not less than the second version number, the window is rendered directly based on the first partition content data in memory.

[0311] The embodiments of steps 1710 to 1730 above determine whether the data in memory has expired based on the first version number of the first content data in memory and the second version number of the first content data in the server. Setting the version number facilitates a quick comparison between the data in memory and the data in the server, thereby improving the data processing efficiency of the online collaborative drawing board.

[0312] In one embodiment, the memory is configured with a data validity period and a loading time for the first partition's content data. The loading time refers to the time it takes for the first partition's content data to be loaded from the server into the memory. After determining that the first partition's content data exists in the memory, the difference between the current time and the loading time is calculated. If the difference is greater than the loading time, it is determined that the first partition's content data in the memory has expired. If the difference is less than the loading time, it is determined that the first partition's content data in the memory has not expired.

[0313] Determining the position pointer of the first partition and rendering the window.

[0314] In step 330, the first window boundary position is compared with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position.

[0315] In one embodiment, reference is made to Figure 18 Step 330 includes:

[0316] Step 1810: If it is determined that the window and the partition have an intersection based on the first window boundary position and the partition position pointer of the partition, then the partition position pointer is determined as the first partition position pointer that matches the first window boundary position.

[0317] In step 340, the content data of the first partition, stored corresponding to the first partition location pointer, is loaded into memory, and the viewport is rendered based on the first partition content data loaded into memory. Corresponding to step 1810, step 340 includes:

[0318] Step 1820: Load the intersection into memory and render the view based on the intersection loaded into memory.

[0319] Steps 1810 and 1820 are described in detail below.

[0320] In step 1810, if it is determined that the window and the partition intersect based on the first window boundary position and the partition position pointer of the partition, then the partition position pointer is determined as the first partition position pointer that matches the first window boundary position.

[0321] If a window and a partition intersect, it means that they have overlapping areas. Therefore, the position pointer of the first partition, matching the boundary position of the first window, is determined based on the partition's position pointer. Whether a window and a partition intersect can be determined geometrically.

[0322] Determining the first partition location pointer first requires determining the memory address of the intersection of the window and the partition, and then using this memory address as the address pointed to by the first partition location pointer. If the proportion of the overlapping portion of the window and the partition in the partition exceeds a set threshold, to reduce computation, the partition pointer of that partition can be directly used as the first partition location pointer for matching the boundary position of the first window.

[0323] In addition, the address pointed to by the first partition location pointer is the memory address of the intersection of all partitions and windows in the online collaboration canvas.

[0324] In step 1820, the intersection is loaded into memory, and the viewport is rendered based on the intersection loaded into memory.

[0325] The content data of the first partition corresponding to the first partition pointer is the content data of the partition where the intersection of the window and the partition is located. Therefore, the intersection is loaded into memory, and the window is rendered based on the intersection loaded into memory.

[0326] In the embodiments of steps 1810 and 1820 described above, when there is an intersection between the viewport and the partition, the partition position pointer is determined to match the first partition position pointer of the first viewport boundary position, and the intersection is loaded into memory for rendering the viewport. This method only needs to load and render the intersection of each partition and the viewport, which greatly reduces the amount of data that needs to be processed, thereby reducing data processing time, reducing the memory footprint of online collaborative artboard data processing, and improving the data processing efficiency of online collaborative artboards.

[0327] The above is a general description of steps 1810 and 1820. Since step 1820 has been described in sufficient detail above, the specific implementation process of step 1810 will be described in detail below.

[0328] In step 1810, if it is determined that the window and the partition intersect based on the first window boundary position and the partition position pointer of the partition, then the partition position pointer is determined as the first partition position pointer that matches the first window boundary position.

[0329] In one embodiment, the position of the first window boundary is represented by the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, and the first minimum vertical axis coordinate of the window in the online collaboration canvas coordinate system, and the partition position pointer is represented by the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate of the partition in the online collaboration canvas coordinate system.

[0330] Reference Figure 19 Step 1810 includes:

[0331] Step 1910: Based on the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, the first minimum vertical axis coordinate, the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate, determine that the window and the partition have an intersection.

[0332] Step 1910 will be described in detail below.

[0333] In step 1910, based on the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, the first minimum vertical axis coordinate, the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate, it is determined that the window and the partition have an intersection.

[0334] The viewport of an online collaboration board is typically rectangular. The position of the first viewport boundary is represented by the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, and the first minimum vertical axis coordinate of the viewport in the online collaboration board coordinate system. (See reference...) Figure 20A The first maximum horizontal axis coordinate is 51, the first minimum horizontal axis coordinate is 5, the first maximum vertical axis coordinate is 36, and the first minimum vertical axis coordinate is 12.

[0335] For ease of processing, in this embodiment, each partition of the online collaboration canvas is set as a rectangle. The partition position pointer is represented by the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate of the partition in the online collaboration canvas coordinate system. (Refer to...) Figure 20B For the first partition, the second maximum x-axis coordinate is 32, the second minimum x-axis coordinate is 0, the second maximum y-axis coordinate is 44, and the second minimum y-axis coordinate is 22. For the second partition, the second maximum x-axis coordinate is 64, the second minimum x-axis coordinate is 32, the second maximum y-axis coordinate is 44, and the second minimum y-axis coordinate is 22. For the third partition, the second maximum x-axis coordinate is 32, the second minimum x-axis coordinate is 0, the second maximum y-axis coordinate is 22, and the second minimum y-axis coordinate is 0. For the fourth partition, the second maximum x-axis coordinate is 64, the second minimum x-axis coordinate is 32, the second maximum y-axis coordinate is 22, and the second minimum y-axis coordinate is 0.

[0336] For each partition, if one of the first maximum horizontal axis coordinate and the first minimum horizontal axis coordinate lies between the second maximum horizontal axis coordinate and the second minimum horizontal axis coordinate, and one of the first maximum vertical axis coordinate and the first minimum vertical axis coordinate lies between the second maximum vertical axis coordinate and the second minimum vertical axis coordinate, then the window and the partition are considered to have intersection. For example, refer to... Figure 20A and Figure 20B For the third partition, the first minimum horizontal axis coordinate 5 of the window is located between the second maximum horizontal axis coordinate 32 and the second minimum horizontal axis coordinate 0, and the first minimum vertical axis coordinate 12 is located between the second maximum vertical axis coordinate 22 and the second minimum vertical axis coordinate 0. Therefore, it can be considered that the window and the third partition have an intersection.

[0337] The embodiment of step 1910 above quickly determines that there is an intersection between the window and the partition by using the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, the first minimum vertical axis coordinate of the window, and the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate of the partition, so as to determine the position pointer of the first partition and improve the data processing efficiency of the online collaborative canvas.

[0338] In another embodiment, the position of the first window boundary is represented by a first curve function of each side of the window in the online collaborative canvas coordinate system, and the partition position pointer is represented by a second curve function of each side of the partition in the online collaborative canvas coordinate system.

[0339] Reference Figure 21 Step 1810 includes:

[0340] Step 2110: Based on the first curve function and the second curve function, determine that the window and the partition have an intersection.

[0341] Step 2110 will be described in detail below.

[0342] In step 2110, based on the first curve function and the second curve function, it is determined that the window and the partition have an intersection.

[0343] The first curve function represents the edges of the viewport in the online collaboration canvas coordinate system and can be used to indicate the boundary position of the first viewport. The second curve function represents the edges of the partition in the online collaboration canvas coordinate system and is used to indicate the partition position pointer. If the first and second curve functions intersect, it is determined that the viewport and the partition intersect.

[0344] Reference Figure 20A The boundary of the first viewport is represented by a first curve function, which can be expressed by four functional expressions: x = 5, x = 51, y = 12, and y = 26. (Refer to...) Figure 20B The second curve function of the first partition can be represented as x = 0, x = 32, y = 222, y = 44. Comparing the first and second curve functions, we can determine that there are two intersection points between them, so the window and the first partition have an intersection.

[0345] The embodiment of step 2110 above determines the intersection of the window and the partition based on the first curve function and the second curve function. It can quickly determine the intersection of the window and the partition to determine the position pointer of the first partition, thereby improving the data processing efficiency of the online collaborative canvas.

[0346] Rendering of overall content data

[0347] In the above steps, this embodiment of the disclosure only renders the content storage data of the first partition to the window. However, in some cases, it is also necessary to render all the content data of the online collaborative canvas data, that is, the overall content data, to the window. In this case, it is not necessary to compare the boundary position of the first window with the partition position pointers of each partition, which can reduce the amount of data processing and improve the data processing efficiency.

[0348] In one embodiment, reference is made to Figure 22 Prior to step 330, the online collaborative whiteboard data processing method also includes:

[0349] Step 2210: Determine the first area of ​​the window based on the position of the first window boundary;

[0350] Step 2220: Obtain the second area of ​​the online collaborative canvas;

[0351] Step 2230: If the ratio of the first area to the second area is greater than the first threshold, obtain the overall position pointer and store the overall position pointer in correspondence with the overall content data of the online collaborative canvas.

[0352] Step 2240: Load the overall content data stored corresponding to the overall position pointer into memory, and render the view window based on the overall content data loaded into memory.

[0353] Steps 2210 to 2240 are described in detail below.

[0354] In step 2210, the first area of ​​the window is determined based on the position of the first window boundary.

[0355] The first area refers to the first area of ​​the viewport. This first area can be calculated based on the coordinates of the first viewport's boundary position in the online collaborative canvas coordinate system. (Refer to...) Figure 20A If the length of the first viewport boundary is 46 and the height is 24, then the first area of ​​the viewport is 1104.

[0356] In step 2220, the second area of ​​the online collaborative canvas is obtained.

[0357] The second area refers to the area of ​​the online collaborative canvas. (Refer to...) Figure 20B If the length of the online collaborative drawing board is 64 and the height is 44, then the second area of ​​the online collaborative drawing board is 2816.

[0358] In step 2230, if the first ratio of the first area to the second area is greater than the first threshold, the overall position pointer is obtained and stored in correspondence with the overall content data of the online collaborative canvas.

[0359] The first ratio is the ratio of the first area to the second area. (Refer to...) Figure 20A and Figure 20B The first area is 1104 and the second area is 2816, so the first ratio is approximately 0.39.

[0360] The overall content data refers to all the data of the online collaborative artboard, and the overall position pointer points to the memory storage address of the overall content data of the online collaborative artboard.

[0361] The first threshold corresponds to the first ratio. The first threshold can be set as needed. When the first ratio is greater than the first threshold, there is a large amount of data to be rendered to the viewport. In order to reduce the amount of data processing, this embodiment of the disclosure obtains the overall position pointer to render the overall content data.

[0362] Assuming the first threshold is 0.5, when the first ratio is greater than 0.5, the overall position pointer is obtained. Otherwise, the first viewport boundary position is compared with the partition position pointers of each partition to determine the first partition position pointer that matches the first viewport boundary position. (See reference...) Figure 23B , Figure 23B If the corresponding first ratio is greater than the first threshold, obtain Figure 23B The overall position pointer in the context points to the overall content data of the online collaboration board.

[0363] In step 2240, the overall content data corresponding to the overall position pointer is loaded into memory, and the window is rendered based on the overall content data loaded into memory.

[0364] After determining the overall position pointer, load the overall content data corresponding to the overall position pointer into memory, and render the viewport based on the overall content data loaded into memory.

[0365] It should be noted that if the complete content data exists in memory and has not expired, the window is rendered based on the complete content data in memory. If the complete content data does not exist in memory, or the complete content data has expired, the complete content data is loaded from the server into memory, and the window is rendered based on the complete content data loaded into memory.

[0366] In the embodiments of steps 2210 to 2240 described above, when the first ratio is greater than a first threshold, the overall content data stored corresponding to the overall position pointer is loaded into memory, and the window is rendered based on the overall content data loaded into memory. This method can reduce the amount of data that needs to be processed when the window is large, thereby improving the data processing efficiency of the online collaborative canvas.

[0367] The above is a general description of steps 2210 to 2240. The specific implementation process of step 2240 is described in detail below.

[0368] In step 2240, the overall content data corresponding to the overall position pointer is loaded into memory, and the window is rendered based on the overall content data loaded into memory.

[0369] In one embodiment, reference is made to Figure 24 Step 2240 includes:

[0370] Step 2410: Determine the content data of the first window based on the boundary position of the first window from the overall content data stored corresponding to the overall position pointer;

[0371] Step 2420: Load the content data of the first window into memory;

[0372] Step 2430: Render the window based on the content data of the first window loaded into memory.

[0373] Steps 2410 to 2430 are described in detail below.

[0374] In step 2410, the first window content data is determined from the overall content data stored corresponding to the overall position pointer, based on the first window boundary position.

[0375] The first window content data refers to the content data that needs to be displayed within the window, such as... Figure 23A The content data displayed in the window of the online collaborative canvas is determined by searching memory based on the address pointed to by the overall position pointer. The content data of the first window is then determined by comparing the boundary position of the first window with the overall content data.

[0376] In step 2420, the content data of the first window is loaded into memory.

[0377] After determining the content data of the first window, the content data of the first window is loaded into memory for rendering of the window.

[0378] It should be noted that if the first window content data exists in memory and has not expired, the window is rendered based on the first window content data in memory. If the first window content data does not exist in memory, or has expired, the first window content data is loaded from the server into memory, and the window is rendered based on the first window content data loaded into memory.

[0379] In step 2430, the window is rendered based on the content data of the first window loaded into memory.

[0380] The window is rendered based on the content data of the first window in memory so that the window of the online collaborative canvas displays the content data of the first window. Figure 4B For the overall content data of the online collaborative whiteboard, when the first ratio is greater than the first threshold, the data in the window is as follows: Figure 23A As shown.

[0381] The embodiments of steps 2410 to 2430 above determine the overall content data stored corresponding to the overall position pointer, so as to determine the first window content data based on the first window boundary position, and then render the window based on the first window content data loaded into memory. This embodiment of the present disclosure renders the window based on the first window content data, so that the window can display its content data completely and accurately, improving the accuracy of online collaborative whiteboard data processing.

[0382] In step 1810, if it is determined that the window and the partition intersect based on the first window boundary position and the partition position pointer of the partition, then the partition position pointer is determined as the first partition position pointer that matches the first window boundary position. In this case, in one embodiment, after determining that the window and the partition intersect based on the first window boundary position and the partition position pointer of the partition, a third area of ​​the intersection of the window and the partition is obtained, and a fourth area of ​​the partition is obtained. If the third area accounts for a second proportion of the fourth area that is greater than a second threshold, the partition content data corresponding to the partition position pointer of the partition is loaded into memory and rendered. The second threshold can be set as needed.

[0383] Supplementary fetching during the use of online collaborative artboards

[0384] During the use of online collaborative artboards, objects may move the viewport position as needed. Accordingly, it is necessary to determine the data in the viewport after the movement and render it so that the content displayed in the viewport changes in real time based on the object's actions.

[0385] In one embodiment, reference is made to Figure 25 Following step 340, the online collaborative whiteboard data processing method further includes:

[0386] Step 2510: In response to the view movement operation of the window, obtain the position of the second window boundary. The position of the second window boundary is the location of the window boundary on the online collaborative canvas after the view movement.

[0387] Step 2520: Compare the second window boundary position with the partition position pointers of each partition to determine the second partition position pointer that matches the second window boundary position;

[0388] Step 2530: Load the content data of the second partition corresponding to the second partition position pointer into memory, and render the window based on the content data of the second partition loaded into memory.

[0389] Steps 2510 to 2530 are described in detail below.

[0390] In step 2510, in response to the view movement operation of the window, the second window boundary position is obtained, which is the position of the window boundary on the online collaborative canvas after the view movement.

[0391] View movement refers to the operation of moving an object within a window on the terminal to shift the viewpoint and display new data within the window. The second window boundary position refers to the position of the window boundary on the online collaboration canvas after the view movement operation.

[0392] Figure 4D The first viewport boundary position of the online collaborative artboard is defined by the object controlling the viewport movement to move the viewport downwards, thus forming... Figure 26A The boundary of the window shown is located on the online collaboration canvas, which is the boundary position of the second window.

[0393] In step 2520, the second window boundary position is compared with the partition position pointers of each partition to determine the second partition position pointer that matches the second window boundary position.

[0394] The address pointed to by the second partition position pointer is the memory address of the content data within the viewport after the view has moved. By comparing the second viewport boundary position with the partition position pointers of each partition, it is possible to determine which specific partition intersects with the viewport after the viewport has moved, and the location of the intersection. Then, based on the partition position pointers of the partitions that intersect with the viewport, the second partition position pointer that matches the second viewport boundary position can be determined.

[0395] Reference Figure 26A and Figure 4B The first, second, third, and fourth partitions of the online collaborative canvas all intersect with the viewport after the view is moved. Then, for each partition's position pointer, the memory address of the intersection between the partition and the viewport is determined, and the memory addresses of multiple intersections are used as the second partition position pointer to match the boundary position of the second viewport.

[0396] In step 2530, the content data of the second partition, which corresponds to the second partition position pointer, is loaded into memory, and the window is rendered based on the content data of the second partition loaded into memory.

[0397] The content data of the second partition refers to the content data of the online collaborative canvas stored at the memory address pointed to by the second partition location pointer, or it can be considered as the content data displayed in the window after the view moves.

[0398] After determining the second partition position pointer corresponding to the boundary position of the second window, the content of the second partition stored at the second partition position pointer is loaded into memory. Then, the window is rendered based on the second partition content data loaded into memory, so that the window displays the second partition content data.

[0399] It should be noted that if the second window content data exists in memory and has not expired, the window is rendered based on the second window content data in memory. If the second window content data does not exist in memory, or the second window content data has expired, the second window content data is loaded from the server into memory, and the window is rendered based on the second window content data loaded into memory. Figure 26A Online collaborative drawing boards such as Figure 4B As shown, and Figure 26A The window in the middle is Figure 4D The window after the viewpoint has moved.

[0400] It should be noted that, referring to Figure 26A After a view movement operation, the window's position changes. However, the content data of the first section within the window before the view movement remains in the foreground, allowing for immediate display of the first content data when the window returns to the first window boundary, thus reducing data processing workload.

[0401] Reference Figure 26B This embodiment of the disclosure performs region segmentation on the online collaboration canvas to obtain multiple partitions and caches the partition position pointers. For an object's open operation on the online collaboration canvas, the boundary position of the first viewport is obtained, and the content data of the first partition corresponding to the boundary position of the first viewport is returned for rendering the viewport. Subsequently, based on the object's view movement operations, the complete data of the online collaboration canvas is retrieved from the front end.

[0402] In the embodiments of steps 2510 to 2530 above, in response to the view movement operation of the window, the second window boundary position is obtained, and the second window boundary position is compared with the partition position pointers of each partition to determine the second partition position pointer that matches the second window boundary position. The window is then rendered based on the second partition content data corresponding to the second partition position pointer, so that the window after the view movement displays the corresponding content data, thereby improving the timeliness of the window display after the view movement.

[0403] In another embodiment, after step 340, the boundary position of the first viewport is expanded according to a preset ratio to obtain the boundary position of the third viewport. The boundary position of the third viewport is compared with the partition position pointers of each partition to determine the third partition position pointer that matches the boundary position of the third viewport. The content data of the third partition corresponding to the third partition position pointer is loaded into memory and then loaded to the front end. Therefore, after the object undergoes a view movement operation, the viewport after the view movement can be displayed instantly, reducing the amount of data processing after the view movement and thus improving the timeliness of the display.

[0404] It should be noted that the preset scale can be set as needed, and this preset scale is greater than 1. Additionally, the third viewport, whose boundary is expanded according to the preset scale, is located within the online collaboration canvas.

[0405] Data processing related to editing operations

[0406] In one embodiment, reference is made to Figure 27 Following step 340, the online collaborative whiteboard data processing method further includes:

[0407] Step 2710: In response to editing operations on the rendered content in the window, generate the edited content data;

[0408] Step 2720: Obtain the editing position of the editing operation;

[0409] Step 2730: Compare the edit position with the partition position pointers of each partition to determine the third partition position pointer that matches the edit position;

[0410] Step 2740: Update the content data of the third partition corresponding to the position pointer of the third partition in memory with the edited content data.

[0411] Steps 2710 to 2740 are described in detail below.

[0412] In step 2710, in response to the editing operation on the rendered content in the window, the edited content data is generated.

[0413] Editing operations refer to adding, deleting, modifying, or replacing the content displayed in the online collaboration canvas window, i.e., the rendered content. Edited content data refers to the content data generated after editing the rendered content within the window, i.e., the content data in the first section.

[0414] It should be noted that the edited content data can be all the content data displayed in the window after the editing operation, or it can be the content data of only the functional units related to the editing operation. For example, refer to... Figure 28AThe object edits the rendered content in the viewport, adding a teardrop-shaped graphic, and thus generating the edited content data. The edited content data can be... Figure 28A All content data within the central window can also be the content data of newly added teardrop-shaped functional units.

[0415] In step 2720, the edit position of the edit operation is obtained.

[0416] Edit position refers to the location of the content data corresponding to the editing operation within the online collaborative canvas.

[0417] If the edited content data is all the content data displayed in the window after the edit operation, then the edit position is the first window position of the window. If the edited content data is the content data of a functional unit that is only related to the edit operation, then the edit position is the location of that functional unit in the online collaboration canvas. For example, refer to... Figure 28A If the edited content data is the content data of a newly added teardrop-shaped functional unit, then the editing position is determined based on the maximum horizontal axis coordinate, minimum horizontal axis coordinate, maximum vertical axis coordinate, and minimum vertical axis coordinate of the teardrop-shaped functional unit in the online collaborative canvas coordinate system.

[0418] In step 2730, the edit position is compared with the partition position pointers of each partition to determine the third partition position pointer that matches the edit position.

[0419] The address pointed to by the third partition location pointer is the memory address where the edited content data is stored.

[0420] By comparing the edit position of the edited content data with the partition position pointers of each partition, it is possible to determine which partition intersects with the edit position and the location of the intersection. Then, based on the partition position pointers of the partitions that intersect with the edit position, the position pointer of the third partition that matches the edit position can be determined.

[0421] Reference Figure 28A If the edited content data is the content data of a newly added teardrop-shaped functional unit, determine the editing position in the first partition and determine the position pointer of the third partition. The position pointer of the third partition is as follows: Figure 28B As shown.

[0422] In step 2740, the content data of the third partition corresponding to the position pointer of the third partition in memory is updated with the edited content data.

[0423] After determining the location pointer of the third partition corresponding to the edited content data, determine the content data of the third partition that the third partition location pointer points to in memory, and update the third content data with the edited content data.

[0424] If the edited content data is all the content data displayed in the window after the edit operation, then the content data of the third section can be considered as the content data of the first section, and the content data of the third section can be updated with the edited content data.

[0425] If the edited content data pertains to a functional unit that is only related to the editing operation, then depending on the type of editing operation, operations such as adding, deleting, and replacing can be performed using the edited content data at the pointer to the third memory partition. (See reference...) Figure 28A and Figure 28B The edited content data is the content data of the newly added teardrop-shaped functional unit. Correspondingly, the edited content data is added at the third memory location pointer.

[0426] It should be noted that, assuming the editing operation is to add or delete, the data of each partition of the online collaborative canvas stored in memory, as well as the overall content data, will increase or decrease synchronously, and the memory addresses pointed to by the partition position pointers of each partition and the overall position pointer will be updated synchronously.

[0427] Reference Figure 29 The object can edit the rendered content of the online collaborative canvas within the client's view. In response to the editing operation, it generates the edited content data and determines the editing position. This position is compared with the partition position pointers of each partition to determine the third partition pointer. The edited content data is then used to update the content data of the third partition at the memory address pointed to by the third partition pointer.

[0428] In the embodiments described above, steps 2710 to 2740 involve generating edited content data when an object edits the content rendered in the window of the online collaboration canvas. The edited position is compared with the partition position pointers of each partition to determine the third partition position pointer that matches the edited position. The edited content data is then used to update the third partition content in memory corresponding to the third partition position pointer. Therefore, when an object edits content in the online collaboration canvas, it is unnecessary to reflect the edited content in all the main text data in memory; only the original third partition content data needs to be updated with the edited content data. This significantly reduces the memory footprint of online collaboration canvas data processing and improves data processing efficiency.

[0429] In one embodiment, reference is made to Figure 30 Following step 2740, the online collaborative whiteboard data processing method further includes:

[0430] Step 3010: In response to the server update condition triggered by the edited content data, send the edited content data to the server to update the content data of the third partition corresponding to the third partition position pointer on the server.

[0431] Step 3010 will be described in detail below.

[0432] In step 3010, in response to the server update condition triggered by the edited content data, the edited content data is sent to the server to update the content data of the third partition corresponding to the third partition position pointer on the server.

[0433] Server update conditions refer to the conditions that must be met to update data on the server. Once the edited content meets the server update conditions, the edited content is sent to the server to update the content of the third partition on the server.

[0434] Server update conditions can include the number of editing operations, the amount of content data corresponding to the editing operations, and the server update cycle. If the server update condition is the number of editing operations, and the maximum number is set to 50, then in response to 50 editing operations performed on the content data within the window on the terminal, the edited content data corresponding to the previous server update will be sent to the server along with the content data from the last edit operation. If the server update condition is the server update cycle, and the cycle is 5 minutes, then every 5 minutes, the edited content data corresponding to the editing operations within that 5-minute period will be sent to the server along with the content data from those 5 minutes.

[0435] In the embodiment of step 3010 above, when the server update conditions are met, the edited content data is sent to the server to update the content data of the third partition on the server. This method can automatically update the content data of the third partition on the server, reducing the occurrence of data loss and improving the reliability of online collaborative whiteboard data processing.

[0436] The above is a general description of step 3010. The following is a detailed description of the specific implementation process of step 3010.

[0437] In step 3010, in response to the server update condition triggered by the edited content data, the edited content data is sent to the server to update the content data of the third partition corresponding to the third partition position pointer on the server.

[0438] In one embodiment, reference is made to Figure 31 Step 3010 includes:

[0439] Step 3110: Determine that the total amount of data of each edited content generated in response to the editing operation after the previous server update has reached a predetermined threshold;

[0440] Step 3120: Send all the edited content data generated in response to the editing operation after the previous server update to the server to update the content data of the third partition corresponding to the third partition position pointer on the server.

[0441] Steps 3110 and 3120 are described in detail below.

[0442] In step 3110, it is determined that the total amount of data of each edited content generated in response to the editing operation after the previous server update has reached a predetermined threshold.

[0443] The predetermined threshold corresponds to the total amount of data in the edited content. In step 3110, the server update condition is that the total amount of data in each edited content data responding to the editing operation after the previous server update reaches the predetermined threshold.

[0444] It should be noted that the total data size of each edited content includes the sum of the data sizes corresponding to operations such as adding, deleting, modifying, and replacing. If the size of a text box added to the online collaboration canvas is 10 bytes, the size of a deleted graphic is 18 bytes, and the size of newly added data in the modified table is 20 bytes, then the total data size of each edited content is 48 bytes.

[0445] It should be noted that the preset threshold can be set as needed. The smaller the preset threshold, the more frequently the data in the server is updated, and the higher the reliability of the online collaborative whiteboard data processing.

[0446] In step 3120, all the edited content data generated in response to the editing operation after the previous server update are sent to the server together to update the third partition content data corresponding to the third partition position pointer on the server.

[0447] In response to a previous server update, when the total amount of edited content data generated in response to editing operations reaches a predetermined threshold—that is, when the edited content data triggers a server update condition—all the edited content data generated in response to the previous server update are sent to the server together to update the content data in the third partition on the server. Assuming the predetermined threshold is 100 bytes, when the total amount of edited content data corresponding to editing operations such as adding, deleting, modifying, and replacing reaches 100 bytes, these 100 bytes of edited content data are sent to the server together, updating the content data in the third partition on the server.

[0448] Reference Figure 29When the total amount of data corresponding to each edited content operation reaches a predetermined threshold within the time period between the current moment and the previous server update, the client uploads all edited content data within that time period to the server and updates the content of the third partition on the server.

[0449] In steps 3110 and 3120 above, when the total amount of edited content data corresponding to each editing operation reaches a predetermined threshold after the previous server update, the edited content data generated after the previous server update is sent to the server to update the content data of the third partition corresponding to the third partition position pointer on the server. Setting a predetermined threshold ensures that the edited content data is uploaded to the server in a timely manner, reducing the occurrence of data loss. Furthermore, setting a predetermined threshold also reduces the frequency of data uploads to the server, thereby reducing the amount of data processed and improving data processing efficiency.

[0450] Implementation details of the online collaborative whiteboard data processing method of this disclosure embodiment

[0451] The following reference Figure 32 This document details the implementation of the online collaborative whiteboard data processing method according to embodiments of the present disclosure.

[0452] In step 3210, in response to the opening operation of the online collaboration canvas, the position of the first window boundary is obtained. The first window boundary position is the location of the window boundary of the online collaboration canvas on the online collaboration canvas.

[0453] Subsequently, based on the multiple functional units in the online collaborative whiteboard, the online collaborative whiteboard is divided into multiple partitions, with the number of partitions not exceeding the number of functional units.

[0454] In one embodiment, in step 3221, the number of functional units of the online collaborative canvas, the complexity of the online collaborative canvas content, and the scene type are obtained.

[0455] It should be noted that the complexity prediction model is used to input the online collaborative whiteboard, resulting in the complexity of the online collaborative whiteboard content. The scenario type refers to the type of scenario in which the online collaborative whiteboard is applied.

[0456] In step 3222, the number of partitions is determined based on the number of functional units, the complexity of the online collaborative whiteboard content, and the scene type. The number of partitions is not greater than the number of functional units.

[0457] In step 3223, the online collaborative whiteboard is divided into partitions based on the number of partitions. Each partition includes a core functional unit and at least one sub-edge functional unit.

[0458] It should be noted that multiple functional units are input into the partition importance prediction model to obtain the importance of each functional unit. Based on the importance, a core functional unit is assigned to each partition, and functional units other than the core functional units are identified as edge functional units. Among the multiple core functional units, the adjacent core functional units of the edge functional units are determined. The edge functional units are then divided into multiple sub-edge functional units according to the area ratio of their adjacent core functional units, and each sub-edge functional unit is expanded into a corresponding adjacent core functional unit. Each expanded core functional unit is then considered as a partition.

[0459] In another embodiment, in step 3224, a portion of adjacent functional units are merged according to multiple candidate merging schemes to obtain multiple merged results, each of which includes multiple merged functional units.

[0460] It should be noted that the generation of candidate merging schemes first requires determining the average area of ​​each partition based on the area of ​​the online collaboration canvas and the number of partitions. Then, based on the average area of ​​the partitions, a lower limit for the merged area is determined. A functional unit is randomly selected from the functional units not yet partitioned as an anchor functional unit. The first process is executed, specifically including: if the area of ​​the anchor functional unit is less than the lower limit for the merged area, a candidate merging functional unit is randomly selected and merged with the anchor functional unit to expand the area of ​​the anchor functional unit, and the first process is returned until the area of ​​the anchor functional unit is not less than the lower limit for the merged area. Here, the candidate merging functional units are the functional units that are not yet partitioned and are adjacent to the anchor functional unit. The merged anchor functional unit is taken as a merged functional unit, and the step of randomly selecting a functional unit from the functional units not yet partitioned as an anchor functional unit is returned. Finally, each merged functional unit is taken as a partition to obtain candidate merging schemes.

[0461] In step 3225, a target merging scheme is determined based on the multiple merged results corresponding to the multiple candidate merging schemes. The target merging scheme is determined based on the area variance of multiple merged functional units in the merged results corresponding to each candidate merging scheme.

[0462] In step 3226, the multiple merged functional units in the target merging scheme are identified as multiple partitions.

[0463] In step 3230, a partition location pointer is assigned to each partition.

[0464] In step 3240, the first window boundary position is compared with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position.

[0465] It should be noted that if it is determined that the window and the partition intersect based on the boundary position of the first window and the partition position pointer of the partition, then the partition position pointer is determined to be the first partition position pointer that matches the boundary position of the first window.

[0466] Next, the viewport is rendered based on the content data of the first partition corresponding to the first partition position pointer.

[0467] In one embodiment, in step 3251, if it is determined that there is first partition content data in memory and the first partition content data has not expired, the window is rendered based on the first partition content data in memory.

[0468] In another embodiment, in step 3252, if it is determined that there is no first partition content data in memory, or that the first partition content data in memory has expired, the first partition content data is loaded from the server into memory, and the window is rendered based on the first partition content data loaded into memory.

[0469] Additionally, in step 3261, the first area of ​​the window is determined based on the position of the first window boundary.

[0470] In step 3262, the second area of ​​the online collaborative canvas is obtained.

[0471] In step 3263, if the first ratio of the first area to the second area is greater than a first threshold, an overall position pointer is obtained, and the overall position pointer is stored corresponding to the overall content data of the online collaborative canvas. The overall content data corresponding to the overall position pointer is loaded into memory, and the viewport is rendered based on the overall content data loaded into memory.

[0472] In step 3271, in response to the view movement operation of the view window, the position of the second view window boundary is obtained. The position of the second view window boundary is the location of the view window boundary on the online collaborative canvas after the view movement.

[0473] In step 3272, the second window boundary position is compared with the partition position pointers of each partition to determine the second partition position pointer that matches the second window boundary position.

[0474] In step 3273, the content data of the second partition, which corresponds to the second partition position pointer, is loaded into memory, and the window is rendered based on the content data of the second partition loaded into memory.

[0475] In steps 3281 and 3282, in response to the editing operation on the rendered content in the window, the edited content data is generated.

[0476] In step 3283, the edit position of the edit operation is obtained. The edit position is compared with the partition position pointers of each partition to determine the third partition position pointer that matches the edit position.

[0477] In step 3284, the content data of the third partition corresponding to the position pointer of the third partition in memory is updated with the edited content data.

[0478] It is understood that although the steps in the above flowcharts are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated in this embodiment, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the above flowcharts may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps.

[0479] It should be noted that in various specific embodiments of this application, when processing is required based on data related to the characteristics of the target object, such as target object attribute information or a set of attribute information, the permission or consent of the target object will be obtained first. Furthermore, the collection, use, and processing of this data will comply with relevant laws, regulations, and standards. In addition, when embodiments of this application require obtaining target object attribute information, separate permission or consent from the target object will be obtained through pop-ups or redirection to a confirmation page. Only after obtaining the target object's separate permission or consent will the necessary target object-related data for the normal operation of the embodiments of this application be obtained.

[0480] Description of apparatus and devices according to embodiments of this disclosure

[0481] Figure 33 This is a schematic diagram of the structure of the online collaborative whiteboard data processing device provided in this embodiment of the disclosure. The online collaborative whiteboard data processing device includes:

[0482] The first acquisition unit 3310 is used to acquire the first window boundary position in response to the opening operation of the online collaboration canvas. The first window boundary position is the positioning of the window boundary of the online collaboration canvas on the online collaboration canvas.

[0483] The second acquisition unit 3320 is used to acquire the partition position pointer of each partition of the online collaborative canvas;

[0484] The first comparison unit 3330 is used to compare the first window boundary position with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position.

[0485] The first loading unit 3340 is used to load the first partition content data stored corresponding to the first partition position pointer into memory, and to render the window based on the first partition content data loaded into memory.

[0486] Optionally, the first loading unit 3340 is specifically used for:

[0487] If it is determined that the first partition contains data in memory and the first partition has not expired, the window is rendered based on the first partition's data in memory.

[0488] If it is determined that there is no data in the first partition in memory, or that the data in the first partition in memory has expired, the data in the first partition is loaded from the server into memory, and the window is rendered based on the data in the first partition loaded into memory.

[0489] Optionally, the first loading unit 3340 is further used for:

[0490] Retrieve the first version number of the first partition's content data from memory;

[0491] Retrieve the second version number of the first partition's content data from the server;

[0492] If the first version number is less than the second version number, it is determined that the data in the first partition in memory has expired.

[0493] Optionally, the first comparison unit 3330 is specifically used to: if it is determined that the window and the partition have an intersection based on the boundary position of the first window and the partition position pointer of the partition, then determine the partition position pointer as the first partition position pointer that matches the boundary position of the first window;

[0494] The first loading unit 3340 is specifically used to: load the intersection into memory, and render the window based on the intersection loaded into memory.

[0495] Optionally, the window boundary position is represented by the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, and the first minimum vertical axis coordinate of the window in the online collaboration canvas coordinate system, and the partition position pointer is represented by the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate of the partition in the online collaboration canvas coordinate system.

[0496] The first comparison unit 3330 is also specifically used for:

[0497] Based on the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, the first minimum vertical axis coordinate, the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate, it is determined that the window and the partition have an intersection.

[0498] Optionally, the position of the first window boundary is represented by a first curve function of each edge of the window in the online collaboration canvas coordinate system, and the partition position pointer is represented by a second curve function of each edge of the partition in the online collaboration canvas coordinate system.

[0499] The first comparison unit 3330 is also specifically used for:

[0500] Based on the first curve function and the second curve function, it is determined that the window and the partition have an intersection.

[0501] Optionally, the online collaborative whiteboard data processing device 3300 also includes:

[0502] The first determining unit is used to determine the first area of ​​the window based on the position of the first window boundary;

[0503] The third acquisition unit is used to acquire the second area of ​​the online collaborative canvas.

[0504] The fourth acquisition unit is used to acquire an overall position pointer if the first ratio of the first area to the second area is greater than a first threshold, and the overall position pointer is stored in correspondence with the overall content data of the online collaborative canvas.

[0505] The second loading unit is used to load the overall content data stored corresponding to the overall position pointer into memory, and to render the window based on the overall content data loaded into memory.

[0506] Optionally, the second loading unit is specifically used for:

[0507] The content data of the first window is determined from the overall content data stored corresponding to the overall position pointer, based on the boundary position of the first window;

[0508] Load the content data of the first window into memory;

[0509] The window is rendered based on the content data of the first window loaded into memory.

[0510] Optionally, the online collaborative whiteboard data processing device 3300 also includes:

[0511] The fifth acquisition unit is used to acquire the second window boundary position in response to the view movement operation of the window. The second window boundary position is the position of the window boundary on the online collaborative canvas after the view movement.

[0512] The second comparison unit is used to compare the second window boundary position with the partition position pointers of each partition to determine the second partition position pointer that matches the second window boundary position.

[0513] The third loading unit is used to load the content data of the second partition, which corresponds to the location pointer of the second partition, into memory, and to render the window based on the content data of the second partition loaded into memory.

[0514] Optionally, the online collaborative whiteboard data processing device 3300 also includes:

[0515] The first generation unit is used to generate edited content data in response to editing operations on the content rendered in the viewport;

[0516] The sixth acquisition unit is used to acquire the editing position of the editing operation;

[0517] The second determining unit is used to compare the edit position with the partition position pointers of each partition to determine the third partition position pointer that matches the edit position;

[0518] The first update unit is used to update the content data of the third partition corresponding to the position pointer of the third partition in memory with the edited content data.

[0519] Optionally, the online collaborative whiteboard data processing device 3300 also includes:

[0520] The first sending unit is used to send the edited content data to the server in response to the server update condition triggered by the edited content data, so as to update the content data of the third partition corresponding to the third partition position pointer on the server.

[0521] Optionally, the first transmitting unit is specifically used for:

[0522] It is determined that the total amount of data generated in response to the editing operation after the previous server update has reached a predetermined threshold.

[0523] Send all the edited content data generated in response to the previous server update to the server to update the content data of the third partition corresponding to the third partition position pointer on the server.

[0524] Optionally, the second acquisition unit 3320 is specifically used for:

[0525] Based on the multiple functional units in the online collaborative whiteboard, the online collaborative whiteboard is divided into multiple partitions, and the number of partitions is no greater than the number of functional units.

[0526] Assign a partition location pointer to each partition.

[0527] Optionally, the second acquisition unit 3320 is further used for:

[0528] Determine the number of functional units in the online collaboration whiteboard;

[0529] Input the online collaborative whiteboard into the complexity prediction model to obtain the content complexity of the online collaborative whiteboard;

[0530] Determine the types of scenarios in which the online collaboration whiteboard is applied;

[0531] The number of partitions is determined based on the number of functional units, the complexity of the online collaborative whiteboard content, and the scenario type. The number of partitions shall not exceed the number of functional units.

[0532] The online collaborative whiteboard is divided into partitions based on the number of partitions.

[0533] Optionally, the second acquisition unit 3320 is further used for:

[0534] Multiple functional units are input into the partition importance prediction model to obtain the importance of each functional unit;

[0535] Based on importance, a core functional unit is assigned to each partition, and functional units other than the core functional unit among multiple functional units are identified as edge functional units.

[0536] Among multiple core functional units, identify the adjacent core functional units of the edge functional units;

[0537] The edge functional units are divided into multiple sub-edge functional units according to the area ratio of the adjacent core functional units, and each sub-edge functional unit is expanded into a corresponding adjacent core functional unit. Each expanded core functional unit is then treated as a partition.

[0538] Optionally, the second acquisition unit 3320 is further used for:

[0539] According to multiple candidate merging schemes, some adjacent functional units are merged to obtain multiple merged results, each of which includes multiple merged functional units.

[0540] Based on the multiple merged results corresponding to multiple candidate merge schemes, the target merge scheme is determined.

[0541] The multiple merged functional units in the target merging scheme are identified as multiple partitions.

[0542] Optionally, the second acquisition unit 3320 is further used for:

[0543] Determine the area variance of multiple merged functional units in the merged result corresponding to each candidate merge scheme;

[0544] Based on area variance, the target merging scheme is determined from multiple candidate merging schemes.

[0545] Optionally, the online collaborative whiteboard data processing device 3300 also includes:

[0546] The third determining unit is used to determine the average area of ​​the partitions based on the area of ​​the online collaborative canvas and the number of partitions;

[0547] The fourth determining unit is used to determine the lower limit of the merged area based on the average area of ​​the partitions;

[0548] Select a unit, which is used to select any one of the functional units that has not been partitioned into a partition as the anchor functional unit;

[0549] An execution unit is used to execute a first process, which includes: if the area of ​​the anchor functional unit is less than the lower limit of the merged area, arbitrarily select a candidate merged functional unit to merge with the anchor functional unit to expand the area of ​​the anchor functional unit, and return to the first process until the area of ​​the anchor functional unit is not less than the lower limit of the merged area, wherein the candidate merged functional unit is a functional unit that has not been partitioned among the adjacent functional units of the anchor functional unit.

[0550] The return unit is used to take the merged anchor functional unit as a merged functional unit and return the step of taking any functional unit from the functional units that have not been partitioned into a partition as the anchor functional unit.

[0551] Partitioning units are used to divide each merged functional unit into a partition to obtain candidate merging schemes.

[0552] Reference Figure 34 , Figure 34 The structural block diagram of the terminal portion of the online collaborative whiteboard data processing method according to the embodiments of this disclosure includes: a radio frequency (RF) circuit 3410, a memory 3415, an input unit 3430, a display unit 3440, a sensor 3450, an audio circuit 3460, a wireless fidelity (WiFi) module 3470, a processor 3480, and a power supply 3490, etc. Those skilled in the art will understand that... Figure 34 The terminal structure shown does not constitute a limitation on mobile phones or computers and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0553] The RF circuit 3410 can be used to receive and transmit signals during information transmission or calls. In particular, it receives downlink information from the base station and processes it with the processor 3480; in addition, it transmits uplink data to the base station.

[0554] The memory 3415 can be used to store software programs and modules, and the processor 3480 executes various functional applications and data processing of the content terminal by running the software programs and modules stored in the memory 3415.

[0555] The input unit 3430 can be used to receive input numeric or character information, and to generate key signal inputs related to the settings and function control of the content terminal. Specifically, the input unit 3430 may include a touch panel 3431 and other input devices 3432.

[0556] Display unit 3440 can be used to display input or provided information, as well as various menus of the content terminal. Display unit 3440 may include display panel 3441.

[0557] Audio circuitry 3460, speaker 3461, and microphone 3462 provide an audio interface.

[0558] In this embodiment, the processor 3480 included in the terminal can execute the online collaborative whiteboard data processing method of the previous embodiment.

[0559] The terminals disclosed in this embodiment include, but are not limited to, mobile phones, computers, intelligent voice interaction devices, smart home appliances, vehicle terminals, and aircraft. The embodiments of this invention can be applied to various scenarios, including but not limited to data collection, data export, and data analysis.

[0560] Figure 35 This is a partial structural block diagram of a server 140 for implementing the online collaborative whiteboard data processing method of this disclosure. The server 140 can vary significantly due to different configurations or performance characteristics, and may include one or more central processing units (CPUs) 3522 (e.g., one or more processors) and memory 3532, and one or more storage media 3530 (e.g., one or more mass storage devices) for storing application programs 3542 or data 3544. The memory 3532 and storage media 3530 can be temporary or persistent storage. The program stored in the storage media 3530 may include one or more modules (not shown in the diagram), each module including a series of instruction operations on the server 140. Furthermore, the CPU 3522 may be configured to communicate with the storage media 3530 and execute the series of instruction operations in the storage media 3530 on the server 140.

[0561] Server 140 may also include one or more power supplies 3526, one or more wired or wireless network interfaces 3550, one or more input / output interfaces 3558, and / or one or more operating systems 3541, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, etc.

[0562] The central processing unit 3522 in server 140 can be used to execute the online collaborative whiteboard data processing method of the present disclosure embodiments.

[0563] This disclosure also provides a computer-readable storage medium for storing program code for executing the online collaborative whiteboard data processing methods of the foregoing embodiments.

[0564] This disclosure also provides a computer program product comprising a computer program. A processor of a computer device reads and executes the computer program, causing the computer device to perform the online collaborative whiteboard data processing method described above.

[0565] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in this disclosure and the foregoing drawings are used to distinguish similar terms and are not necessarily used to describe a particular order or sequence. It should be understood that such use of data can be interchanged where appropriate so that embodiments of this disclosure described herein can be implemented, for example, in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “including,” and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that includes a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatuses.

[0566] It should be understood that in this disclosure, "at least one item" refers to one or more items, and "more than one item" refers to two or more items. "And / or" is used to describe the relationship between related content, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related content are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

[0567] It should be understood that in the description of the embodiments disclosed herein, "multiple" means two or more, "greater than", "less than", "exceeding" etc. are understood to exclude the number itself, and "above", "below", "within" etc. are understood to include the number itself.

[0568] In the embodiments provided in this disclosure, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the couplings or direct couplings or communication connections shown or discussed may be indirect couplings or communication connections between devices or units through some interfaces, and may be electrical, mechanical, or other forms.

[0569] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0570] Furthermore, the functional units in the various embodiments of this disclosure can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0571] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this disclosure, in essence, or the part that contributes to related technologies, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server 140, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this disclosure. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, a portable hard drive, read-only memory (ROM), random access memory (RAM), a magnetic disk, or an optical disk.

[0572] It should also be understood that the various implementation methods provided in this disclosure can be combined arbitrarily to achieve different technical effects.

[0573] The above is a detailed description of the embodiments of this disclosure. However, this disclosure is not limited to the above embodiments. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of this disclosure. All such equivalent modifications or substitutions are included within the scope defined by the claims of this disclosure.

Claims

1. A method for processing online collaborative whiteboard data, characterized in that, include: In response to the opening operation of the online collaboration canvas, the first window boundary position is obtained, and the first window boundary position is the positioning of the window boundary of the online collaboration canvas on the online collaboration canvas; Obtain the partition position pointer of each partition in the online collaborative canvas; The first window boundary position is compared with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position; Load the content data of the first partition corresponding to the first partition position pointer into memory, and render the window based on the content data of the first partition loaded into the memory.

2. The online collaborative whiteboard data processing method according to claim 1, characterized in that, The step of loading the first partition content data stored corresponding to the first partition position pointer into memory, and rendering the window based on the first partition content data loaded into the memory, includes: If it is determined that the memory contains the content data of the first partition and the content data of the first partition has not expired, the window is rendered based on the content data of the first partition in the memory; If it is determined that there is no content data of the first partition in the memory, or that the content data of the first partition in the memory has expired, the content data of the first partition is loaded from the server into the memory, and the window is rendered based on the content data of the first partition loaded into the memory.

3. The online collaborative whiteboard data processing method according to claim 2, characterized in that, The step of determining that the data in the first partition of memory has expired includes: Obtain the first version number of the content data of the first partition from the memory; Retrieve the second version number of the content data of the first partition from the server; If the first version number is less than the second version number, it is determined that the data in the first partition in the memory has expired.

4. The online collaborative whiteboard data processing method according to claim 1, characterized in that, The step of comparing the first window boundary position with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position includes: if it is determined that the window and the partition have an intersection based on the first window boundary position and the partition position pointers of the partition, then the partition position pointer is determined as the first partition position pointer that matches the first window boundary position. The step of loading the first partition content data stored corresponding to the first partition position pointer into memory, and rendering the window based on the first partition content data loaded into the memory, includes: loading the intersection into memory, and rendering the window based on the intersection loaded into the memory.

5. The online collaborative whiteboard data processing method according to claim 4, characterized in that, The first window boundary position is represented by the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, and the first minimum vertical axis coordinate of the window in the online collaboration canvas coordinate system, and the partition position pointer is represented by the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate of the partition in the online collaboration canvas coordinate system. The step of determining that the viewport and the partition intersect based on the boundary position of the first viewport and the partition position pointer of the partition includes: Based on the first maximum horizontal axis coordinate, the first minimum horizontal axis coordinate, the first maximum vertical axis coordinate, the first minimum vertical axis coordinate, the second maximum horizontal axis coordinate, the second minimum horizontal axis coordinate, the second maximum vertical axis coordinate, and the second minimum vertical axis coordinate, it is determined that the window and the partition have an intersection.

6. The online collaborative whiteboard data processing method according to claim 1, characterized in that, Before comparing the first window boundary position with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position, the online collaborative canvas data processing method further includes: Based on the position of the first window boundary, determine the first area of ​​the window; Obtain the second area of ​​the online collaborative canvas; If the first ratio of the first area to the second area is greater than a first threshold, obtain the overall position pointer, and store the overall position pointer in correspondence with the overall content data of the online collaborative canvas. Load the overall content data stored corresponding to the overall position pointer into memory, and render the window based on the overall content data loaded into memory.

7. The online collaborative whiteboard data processing method according to claim 6, characterized in that, The step of loading the overall content data stored corresponding to the overall position pointer into memory, and rendering the window based on the overall content data loaded into memory, includes: The first window content data is determined from the overall content data stored corresponding to the overall position pointer, based on the first window boundary position; Load the content data of the first window into the memory; The window is rendered based on the content data of the first window loaded into the memory.

8. The online collaborative whiteboard data processing method according to claim 1, characterized in that, After loading the content data of the first partition corresponding to the first partition position pointer into memory, and rendering the window based on the content data of the first partition loaded into the memory, the online collaborative canvas data processing method further includes: In response to a view movement operation on the view window, a second view window boundary position is obtained, which is the position of the view window boundary on the online collaborative canvas after the view movement. The second window boundary position is compared with the partition position pointers of each partition to determine the second partition position pointer that matches the second window boundary position; Load the second partition content data stored corresponding to the second partition location pointer into memory, and render the window based on the second partition content data loaded into the memory.

9. The online collaborative whiteboard data processing method according to claim 1, characterized in that, After loading the content data of the first partition corresponding to the first partition position pointer into memory, and rendering the window based on the content data of the first partition loaded into the memory, the online collaborative canvas data processing method further includes: In response to an editing operation on the rendered content in the window, edited content data is generated; Get the editing position of the edit operation; The edit position is compared with the partition position pointers of each partition to determine the third partition position pointer that matches the edit position; Update the third partition content data corresponding to the third partition location pointer in the memory with the edited content data.

10. The online collaborative whiteboard data processing method according to claim 9, characterized in that, After updating the content data of the third partition corresponding to the position pointer of the third partition in the memory with the edited content data, the online collaborative canvas data processing method further includes: In response to the server update condition triggered by the edited content data, the edited content data is sent to the server to update the third partition content data corresponding to the third partition position pointer on the server.

11. The online collaborative whiteboard data processing method according to claim 10, characterized in that, The step of responding to the server update condition triggered by the edited content data by sending the edited content data to the server to update the third partition content data corresponding to the third partition position pointer on the server includes: The total amount of data of each of the edited content data generated in response to the editing operation after the previous update of the server has reached a predetermined threshold. The edited content data generated in response to the previous update of the server in response to the edit operation are sent together to the server to update the third partition content data corresponding to the third partition position pointer on the server.

12. The online collaborative whiteboard data processing method according to claim 1, characterized in that, The step of obtaining the partition position pointer of each partition of the online collaborative canvas includes: Based on the multiple functional units in the online collaborative canvas, the online collaborative canvas is divided into multiple partitions, and the number of partitions is no greater than the number of functional units. Assign a partition location pointer to each partition.

13. The online collaborative whiteboard data processing method according to claim 12, characterized in that, The online collaborative whiteboard is divided into multiple partitions based on multiple functional units, including: Determine the number of functional units in the online collaborative whiteboard; Input the online collaborative canvas into the complexity prediction model to obtain the content complexity of the online collaborative canvas; Obtain the scenario type to which the online collaborative canvas is applied; The number of partitions is determined based on the number of functional units, the complexity of the online collaborative whiteboard content, and the scene type, and the number of partitions is not greater than the number of functional units. Based on the number of partitions, the online collaborative whiteboard is divided into partitions.

14. The online collaborative whiteboard data processing method according to claim 13, characterized in that, The process of dividing the online collaborative whiteboard into partitions based on the number of partitions includes: The multiple functional units are input into the partition importance prediction model to obtain the importance of each functional unit; Based on the importance, a core functional unit is assigned to each partition, and the functional units other than the core functional unit among the multiple functional units are identified as edge functional units. Among the plurality of core functional units, the adjacent core functional units of the edge functional unit are determined; The edge functional unit is divided into multiple sub-edge functional units according to the area ratio of the adjacent core functional units, and each sub-edge functional unit is expanded into a corresponding adjacent core functional unit. Each expanded core functional unit is then treated as a partition.

15. The online collaborative whiteboard data processing method according to claim 12, characterized in that, The online collaborative whiteboard is divided into multiple partitions based on multiple functional units, including: According to multiple candidate merging schemes, a portion of the adjacent functional units are merged to obtain multiple merged results, each of which includes multiple merged functional units. Based on the multiple merged results corresponding to the multiple candidate merging schemes, a target merging scheme is determined; The multiple merged functional units in the target merging scheme are determined as the multiple partitions.

16. The online collaborative whiteboard data processing method according to claim 15, characterized in that, The step of determining the target merging scheme based on the multiple merged results corresponding to the multiple candidate merging schemes includes: Determine the area variance of the plurality of merged functional units in the merged result corresponding to each candidate merging scheme; Based on the area variance, the target merging scheme is determined from among the multiple candidate merging schemes.

17. An online collaborative whiteboard data processing device, characterized in that, include: The first acquisition unit is used to acquire the first window boundary position in response to the opening operation of the online collaboration canvas, wherein the first window boundary position is the positioning of the window boundary of the online collaboration canvas on the online collaboration canvas; The second acquisition unit is used to acquire the partition position pointer of each partition into which the online collaborative drawing board is divided; The first comparison unit is used to compare the first window boundary position with the partition position pointers of each partition to determine the first partition position pointer that matches the first window boundary position. The first loading unit is used to load the first partition content data stored corresponding to the first partition position pointer into memory, and to render the window based on the first partition content data loaded into the memory.

18. An electronic device comprising a memory and a processor, the memory storing a computer program, characterized in that, When the processor executes the computer program, it implements the online collaborative drawing board data processing method according to any one of claims 1 to 16.

19. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, it implements the online collaborative whiteboard data processing method according to any one of claims 1 to 16.

20. A computer program product comprising a computer program that is read and executed by a processor of a computer device, causing the computer device to perform the online collaborative whiteboard data processing method according to any one of claims 1 to 16.