Data processing method and device of collaborative whiteboard and storage medium

By first retrieving and rendering partial whiteboard data in the collaborative whiteboard and then performing incremental rendering when requested by the terminal, the problem of long opening time for the collaborative whiteboard is solved, enabling fast display and editing and improving the user experience.

CN120832052APending Publication Date: 2025-10-24TENCENT TECH WUHAN
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410473883.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-04-18
Publication Date
2025-10-24

AI Technical Summary

Technical Problem

When there are many data elements in a collaborative whiteboard, the process of the server retrieving relevant data from the database and constructing whiteboard data takes a long time, resulting in a long time for users to open the collaborative whiteboard, which affects the efficiency and experience of use.

Method used

By receiving the first data acquisition request from the terminal, partial whiteboard data is obtained and rendered for display. When the terminal is rendering the partial data, an incremental request for the remaining whiteboard data is sent, thereby realizing the advance display and incremental rendering of partial data.

Benefits of technology

It significantly reduces the time required to open the collaborative whiteboard, improves user efficiency and experience, and ensures that users can quickly view and edit whiteboard content without affecting normal use.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120832052A_ABST
    Figure CN120832052A_ABST
Patent Text Reader

Abstract

The invention discloses a data processing method and device for a collaboration whiteboard and a storage medium, and the method comprises the steps: obtaining local whiteboard data in whiteboard data according to a first whiteboard data range after receiving a first data obtaining request which is sent by a terminal for whiteboard data of the collaboration whiteboard and comprises the first whiteboard data range; the method comprises the steps of receiving a local whiteboard data acquisition request sent by a terminal when the local whiteboard data is rendered and displayed, sending the local whiteboard data to the terminal for rendering and displaying, then receiving a second data acquisition request sent by the terminal when the local whiteboard data is rendered and displayed, and sending residual whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request. According to the embodiment of the invention, the time consumed for opening the collaborative whiteboard can be shortened, so that the use efficiency and use experience of a user can be improved. The embodiment of the invention can be applied to various application scenes of data collaboration.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of data processing, and in particular to a data processing method and device of a collaborative whiteboard and a storage medium. BACKGROUND

[0002] The collaborative whiteboard is an online platform allowing different users to simultaneously perform real-time collaboration and sharing on a virtual whiteboard. A user logging into the collaborative whiteboard can perform operations such as drawing, writing, adding pictures, and importing files on the collaborative whiteboard, and all these operations are synchronously displayed in real time to other users logging into the collaborative whiteboard, thus facilitating team collaboration and communication efficiency.

[0003] In the related art, when a user opens the collaborative whiteboard on a terminal, the terminal requests whiteboard data of the collaborative whiteboard from a server. At this time, the server pulls relevant data from a database and constructs the whiteboard data of the collaborative whiteboard according to the request of the terminal, and then sends the whiteboard data to the terminal for rendering and display. However, in the case of a large number of data elements in the collaborative whiteboard, the server needs to spend a long processing time to pull relevant data from the database and construct the whiteboard data of the collaborative whiteboard, which is likely to cause a long time consumption problem when the user opens the collaborative whiteboard, thus being not conducive to the user's use efficiency and use experience. SUMMARY

[0004] The following is a summary of the subject matter described in detail herein. This summary is not intended to limit the scope of the claims.

[0005] The embodiments of the present application provide a data processing method and device of a collaborative whiteboard and a storage medium, which can shorten the time consumption of opening the collaborative whiteboard, thus being conducive to improving the user's use efficiency and use experience.

[0006] In one aspect, the embodiments of the present application provide a data processing method of a collaborative whiteboard, comprising the following steps:

[0007] receiving a first data acquisition request for whiteboard data of a collaborative whiteboard sent by a terminal, wherein the first data acquisition request comprises a first whiteboard data range;

[0008] acquiring partial whiteboard data in the whiteboard data according to the first whiteboard data range, and sending the partial whiteboard data to the terminal for rendering and display;

[0009] receiving a second data acquisition request sent by the terminal when the partial whiteboard data is rendered and displayed, and sending remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request.

[0010] In another aspect, the embodiments of the present application also provide a data processing apparatus of a collaborative whiteboard, comprising:

[0011] a request receiving unit, configured to receive a first data acquisition request for whiteboard data of the collaborative whiteboard sent by a terminal, wherein the first data acquisition request comprises a first whiteboard data range;

[0012] a data sending unit, configured to acquire partial whiteboard data in the whiteboard data according to the first whiteboard data range, and send the partial whiteboard data to the terminal for rendering display;

[0013] a data processing unit, configured to receive a second data acquisition request sent by the terminal when the terminal renders and displays the partial whiteboard data, and send remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request.

[0014] Optionally, the whiteboard data comprises a plurality of data elements; and the data sending unit is further configured to:

[0015] traverse position information of all the data elements in the whiteboard data;

[0016] for each data element, perform intersection judgment on the position information and the first whiteboard data range to obtain an intersection judgment result of each data element;

[0017] in the whiteboard data, represent the intersection judgment result as the data elements with intersection, and determine as the partial whiteboard data.

[0018] Optionally, the first whiteboard data range comprises a first whiteboard data position coordinate and a second whiteboard data position coordinate, the first whiteboard data position coordinate and the second whiteboard data position coordinate are coordinates of two opposite vertices of a display area for displaying the partial whiteboard data; the first whiteboard data position coordinate, the second whiteboard data position coordinate and the position information each comprise a horizontal axis coordinate and a vertical axis coordinate; and the data sending unit is further configured to:

[0019] determine a horizontal axis coordinate range according to the horizontal axis coordinate of the first whiteboard data position coordinate and the horizontal axis coordinate of the second whiteboard data position coordinate;

[0020] determine a vertical axis coordinate range according to the vertical axis coordinate of the first whiteboard data position coordinate and the vertical axis coordinate of the second whiteboard data position coordinate;

[0021] judge whether the horizontal axis coordinate and the vertical axis coordinate of the position information are within the horizontal axis coordinate range and the vertical axis coordinate range;

[0022] determining that the position information has intersection with the first whiteboard data range if the horizontal axis coordinate of the position information is within the horizontal axis coordinate range and the vertical axis coordinate of the position information is within the vertical axis coordinate range;

[0023] determining that the position information has no intersection with the first whiteboard data range if the horizontal axis coordinate of the position information is not within the horizontal axis coordinate range or the vertical axis coordinate of the position information is not within the vertical axis coordinate range.

[0024] Optionally, the second data acquisition request comprises the first whiteboard data range and a data pull mark, the data pull mark being used to indicate acquisition of the remaining whiteboard data; and the data processing unit is further configured to:

[0025] acquire a second whiteboard data range according to the first whiteboard data range and the data pull mark, the second whiteboard data range being a complement range of the first whiteboard data range;

[0026] acquire the remaining whiteboard data from the whiteboard data according to the second whiteboard data range;

[0027] send the remaining whiteboard data to the terminal for incremental rendering.

[0028] Optionally, the second data acquisition request comprises a second whiteboard data range, the second whiteboard data range being a complement range of the first whiteboard data range; and the data processing unit is further configured to:

[0029] acquire the remaining whiteboard data from the whiteboard data according to the second whiteboard data range;

[0030] send the remaining whiteboard data to the terminal for incremental rendering.

[0031] Optionally, the data processing unit is further configured to:

[0032] divide the remaining whiteboard data into a plurality of data pages;

[0033] acquire a sending priority of each data page;

[0034] send the plurality of data pages to the terminal for incremental rendering in a descending order of the sending priority.

[0035] Optionally, the data processing unit is further configured to:

[0036] acquire historical operation information of the collaborative whiteboard;

[0037] acquire historical sub-operation information corresponding to each data page from the historical operation information.

[0038] determine a sending priority of each of the data pages according to the historical sub-operation information corresponding to each of the data pages.

[0039] Optionally, the historical sub-operation information comprises a historical operation number and an operation time interval; and the data processing unit is further configured to:

[0040] set a first initial priority for each of the data pages according to the historical operation number corresponding to each of the data pages;

[0041] correct the first initial priority of each of the data pages according to the operation time interval corresponding to each of the data pages, to obtain the sending priority of each of the data pages.

[0042] Optionally, the historical sub-operation information comprises a historical operation duration and an operation time interval; and the data processing unit is further configured to:

[0043] set a second initial priority for each of the data pages according to the historical operation duration corresponding to each of the data pages;

[0044] correct the second initial priority of each of the data pages according to the operation time interval corresponding to each of the data pages, to obtain the sending priority of each of the data pages.

[0045] Optionally, the historical sub-operation information comprises a historical operation number and a historical operation duration; and the data processing unit is further configured to:

[0046] set a third initial priority for each of the data pages according to the historical operation number corresponding to each of the data pages;

[0047] correct the third initial priority of each of the data pages according to the historical operation duration corresponding to each of the data pages, to obtain the sending priority of each of the data pages.

[0048] Optionally, the historical sub-operation information comprises a historical operation number, a historical operation duration and an operation time interval; and the data processing unit is further configured to:

[0049] vectorize the historical operation number, the historical operation duration and the operation time interval corresponding to each of the data pages, to obtain a historical operation number vector, a historical operation duration vector and an operation time interval vector corresponding to each of the data pages;

[0050] For each data page, a priority prediction model is called to perform priority prediction according to the historical operation frequency vector, the historical operation duration vector and the operation time interval vector, to obtain a sending priority of each data page.

[0051] In another aspect, the embodiments of the present application further provide an electronic device, comprising:

[0052] at least one processor;

[0053] at least one memory configured to store at least one program;

[0054] The at least one program, when executed by the at least one processor, implements the data processing method of the collaborative whiteboard.

[0055] In another aspect, the embodiments of the present application further provide a computer readable storage medium, which stores a processor executable computer program, and the processor executable computer program is executed by a processor to implement the data processing method of the collaborative whiteboard.

[0056] In another aspect, the embodiments of the present application further provide a computer program product, which comprises a computer program or computer instructions stored in a computer readable storage medium, and a processor of an electronic device reads the computer program or computer instructions from the computer readable storage medium, and the processor executes the computer program or computer instructions, so that the electronic device executes the data processing method of the collaborative whiteboard.

[0057] The technical scheme provided in the embodiments of the present application, after receiving the first data acquisition request including the first whiteboard data range sent by the terminal for the whiteboard data of the collaborative whiteboard, first acquires the local whiteboard data in the whiteboard data according to the first whiteboard data range, and sends the local whiteboard data to the terminal for rendering and display. Since the local whiteboard data in the first whiteboard data range is first sent to the terminal for rendering and display, when the user opens the collaborative whiteboard, there is no need to wait for all the whiteboard data of the collaborative whiteboard to be loaded, so even if there are many data elements in the collaborative whiteboard, the time consumption for opening the collaborative whiteboard can be greatly shortened, the speed of opening the collaborative whiteboard is improved, and the user can start to view and edit the content of the collaborative whiteboard more quickly, thereby facilitating to improve the use efficiency and use experience of the user. In addition, when the terminal renders and displays the local whiteboard data, a second data acquisition request for acquiring the remaining whiteboard data in the whiteboard data is sent, at this time, the remaining whiteboard data in the whiteboard data can be sent to the terminal for incremental rendering according to the received second data acquisition request. Since the second data acquisition request is sent by the terminal when the local whiteboard data is rendered and displayed, the process of sending the remaining whiteboard data to the terminal for incremental rendering according to the second data acquisition request will not affect the normal use of the collaborative whiteboard by the user. When the user needs to view or edit the remaining whiteboard data other than the local whiteboard data displayed by the terminal, since the terminal has already performed incremental rendering on the remaining whiteboard data, the remaining whiteboard data can be immediately displayed to the user without the user waiting for additional rendering time, thereby providing a more smooth use experience for the user.

[0058] Other features and advantages of the present application will be set forth in the following description, and in part will be apparent from the description, or can be learned by practice of the present application. The objects and other advantages of the present application will be realized and attained by the structure particularly pointed out in the written description and claims thereof. BRIEF DESCRIPTION OF DRAWINGS

[0059] The accompanying drawings are included to provide a further understanding of the technical scheme of the present application, and constitute a part of the specification, and are used together with the embodiments of the present application to explain the technical scheme of the present application, and do not constitute a limitation on the technical scheme of the present application.

[0060] Figure 1 is a flow diagram of a terminal requesting a server to pull whiteboard data in related technologies;

[0061] Figure 2 is a system architecture schematic diagram of a data processing method for executing a collaborative whiteboard provided by the embodiments of the present application;

[0062] Figure 3 is another system architecture schematic diagram of a data processing method for executing a collaborative whiteboard provided by the embodiments of the present application;

[0063] Figure 4 is a flowchart of a data processing method of a collaborative whiteboard provided by an embodiment of the present application;

[0064] Figure 5 is a flowchart of a method for obtaining partial whiteboard data in whiteboard data provided by an embodiment of the present application;

[0065] Figure 6 is a flowchart of a method for determining whether position information and a first whiteboard data range have an intersection provided by an embodiment of the present application;

[0066] Figure 7 is a schematic diagram of a method for determining whether a data element and a first whiteboard data range have an intersection provided by an embodiment of the present application;

[0067] Figure 8 is a schematic diagram of a method for determining whether a data element and a first whiteboard data range have an intersection provided by another embodiment of the present application;

[0068] Figure 9 is a flowchart of a method for obtaining remaining whiteboard data in whiteboard data according to a first whiteboard data range and a data pull mark provided by an embodiment of the present application;

[0069] Figure 10 is a specific flowchart of step 820 provided by an embodiment of the present application;

[0070] Figure 11 is a schematic diagram of a method for a server to send remaining whiteboard data to a terminal for incremental rendering provided by an embodiment of the present application;

[0071] Figure 12 is a flowchart of a method for a server to obtain remaining whiteboard data in whiteboard data according to a second whiteboard data range provided by an embodiment of the present application;

[0072] Figure 13 is a flowchart of a data processing method of a collaborative whiteboard provided by an embodiment of the present application;

[0073] Figure 14 is a flowchart of a data processing method of a collaborative whiteboard provided by an embodiment of the present application;

[0074] Figure 15 is a schematic diagram of a data processing device provided by an embodiment of the present application;

[0075] Figure 16 is a schematic diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0076] The present application will be further described below with reference to the drawings and specific embodiments. The described embodiments should not be considered as limiting the present application, all other embodiments obtained by those of ordinary skill in the art without creative work are within the scope of protection of the present application.

[0077] In the following description, "some embodiments" are described, which describe a subset of all possible embodiments, but it can be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict.

[0078] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present application belongs. The terms used herein are only for the purpose of describing the embodiments of the present application and are not intended to limit the present application.

[0079] In the related art, when a user opens a collaborative whiteboard at a terminal, the terminal requests whiteboard data of the collaborative whiteboard from a server. As shown in Figure 1 At this time, the server pulls related whiteboard data in the local cache according to the request of the terminal, or when the whiteboard data in the local cache is deleted due to expiration, pulls related data from the database and constructs whiteboard data of the collaborative whiteboard, and then sends the whiteboard data to the terminal for rendering and display. When the server pulls related data from the database and constructs whiteboard data of the collaborative whiteboard, the local cached whiteboard data can be updated asynchronously according to the constructed whiteboard data. However, in the case where there are many data elements in the collaborative whiteboard, when the server pulls related data from the database and constructs whiteboard data of the collaborative whiteboard, a long processing time is required, which is likely to cause a long time-consuming problem when the user opens the collaborative whiteboard, thereby being not conducive to the use efficiency and use experience of the user.

[0080] In order to shorten the time-consuming of opening the collaborative whiteboard, thereby improving the user's use efficiency and use experience, the embodiment of the present application provides a data processing method of a collaborative whiteboard, a data processing device of a collaborative whiteboard, an electronic device, a computer readable storage medium and a computer program product. After receiving the first data acquisition request including the first whiteboard data range sent by the terminal for the whiteboard data of the collaborative whiteboard, the local whiteboard data in the whiteboard data is first acquired according to the first whiteboard data range, and the local whiteboard data is sent to the terminal for rendering display. Since the local whiteboard data within the first whiteboard data range is first sent to the terminal for rendering display, the user does not need to wait for all the whiteboard data of the collaborative whiteboard to be loaded when opening the collaborative whiteboard. Therefore, even if there are many data elements in the collaborative whiteboard, the time-consuming of opening the collaborative whiteboard can be greatly shortened, the speed of opening the collaborative whiteboard is improved, and the user can start to view and edit the content of the collaborative whiteboard more quickly, thereby improving the user's use efficiency and use experience. In addition, when the terminal renders and displays the local whiteboard data, a second data acquisition request for acquiring the remaining whiteboard data in the whiteboard data is sent. At this time, the remaining whiteboard data in the whiteboard data can be sent to the terminal for incremental rendering according to the received second data acquisition request. Since the second data acquisition request is sent by the terminal when rendering and displaying the local whiteboard data, the process of sending the remaining whiteboard data to the terminal for incremental rendering according to the second data acquisition request will not affect the normal use of the collaborative whiteboard by the user. When the user needs to view or edit the remaining whiteboard data other than the local whiteboard data displayed by the terminal, the remaining whiteboard data has been incrementally rendered by the terminal, so it can be displayed to the user immediately without the user waiting for additional rendering time, thereby providing a more smooth use experience for the user.

[0081] Reference Figure 2 , Figure 2 is a system architecture schematic diagram provided by the embodiment of the present application for executing the data processing method of the collaborative whiteboard. The system architecture can include a first terminal 201 and a server 202, and the first terminal 201 and the server 202 can be directly or indirectly connected through wired or wireless communication. Wherein, the first terminal 201 and the server 202 can be nodes in the block chain, and the embodiment does not make specific limitation hereon.

[0082] The server 202 can be a standalone physical server, a server cluster or a distributed system composed of multiple physical servers, a cloud server providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and basic cloud computing services such as big data and artificial intelligence platforms. Among them, all whiteboard data of the collaborative whiteboard can be pre-stored in the server 202, and the server 202 can send the whiteboard data to the first terminal 201 for rendering and display in response to a data acquisition request of the first terminal 201.

[0083] The first terminal 201 can include but is not limited to a smartphone, a tablet, a computer, a smart voice interaction device, a smart home appliance, a vehicle-mounted terminal, an aircraft, etc. Among them, the first terminal 201 can be installed with a collaborative whiteboard client, through which the collaborative whiteboard can be opened and the whiteboard data of the collaborative whiteboard can be acquired through the server 202.

[0084] Referring to Figure 1 In an application scenario, it is assumed that the first terminal 201 is a computer and the server 202 is a cloud server storing all whiteboard data of the collaborative whiteboard. In response to an operation of the first user opening the collaborative whiteboard through the collaborative whiteboard client in the first terminal 201, the first terminal 201 generates a first data acquisition request for the whiteboard data of the collaborative whiteboard, and then sends the first data acquisition request to the server 202, wherein the first data acquisition request includes a first whiteboard data range. After receiving the first data acquisition request, the server 202 acquires the local whiteboard data within the first whiteboard data range from the locally stored whiteboard data according to the first whiteboard data range in the first data acquisition request, and sends the local whiteboard data to the first terminal 101 for rendering and display. During the rendering and display of the local whiteboard data, the first terminal 101 sends a second data acquisition request to the server 202 for requesting the remaining whiteboard data of the collaborative whiteboard. In response to receiving the second data acquisition request, the server 202 sends the remaining whiteboard data in the whiteboard data to the first terminal 201 for incremental rendering.

[0085] Referring to Figure 3 , Figure 3 is another system architecture diagram of a data processing method for executing a collaborative whiteboard provided by the embodiments of the present application. The system architecture can include a second terminal 301 and a third terminal 302, and the second terminal 301 can be directly or indirectly connected to the third terminal 302 through wired or wireless communication. Among them, the second terminal 301 and the third terminal 302 can be nodes in a block chain, and the embodiments do not make specific limitations on this.

[0086] The second terminal 301 and the third terminal 302 may include, but are not limited to, smartphones, tablets, computers, intelligent voice interaction devices, smart home appliances, vehicle-mounted terminals, aircraft, etc. The second terminal 301 may be installed with a first collaborative whiteboard application, and the third terminal 302 may be installed with a second collaborative whiteboard application. The first collaborative whiteboard application and the second collaborative whiteboard application may support data collaboration functionality. Through the data collaboration functionality of the first collaborative whiteboard application and the second collaborative whiteboard application, the second terminal 301 and the third terminal 302 may collaborate on data processing for the same collaborative whiteboard.

[0087] like Figure 3 As shown, in another application scenario, assume that second terminal 301 is a tablet with a first collaborative whiteboard application installed, and third terminal 302 is a computer with a second collaborative whiteboard application installed. When a second user sends a data collaboration request to the second collaborative whiteboard application in third terminal 302 via the first collaborative whiteboard application in second terminal 301, the third user can accept the second user's data collaboration request via the second collaborative whiteboard application in third terminal 302. After the third user accepts the second user's data collaboration request, second terminal 301 generates a first data acquisition request for the whiteboard data of the collaborative whiteboard currently being used by the third user, and then sends the first data acquisition request to third terminal 302. The first data acquisition request includes a first whiteboard data range. After receiving the first data acquisition request, third terminal 302 retrieves local whiteboard data within the first whiteboard data range from locally stored whiteboard data based on the first whiteboard data range in the first data acquisition request, and sends the local whiteboard data to second terminal 301 for rendering and display. While rendering and displaying the partial whiteboard data, the second terminal 301 sends a second data acquisition request for the remaining whiteboard data of the collaborative whiteboard to the third terminal 302. In response to receiving the second data acquisition request, the third terminal 302 sends the remaining whiteboard data to the second terminal 301 for incremental rendering.

[0088] It should be noted that in various specific embodiments of the present application, when relevant processing needs to be performed on data related to the characteristics of the user, such as attribute information or a set of attribute information of the user, the user's permission or consent will be obtained first, and the collection, use and processing of such data will comply with relevant laws, regulations and standards of the country and region. In addition, when the attribute information of the user is required by the embodiments of the present application, the separate permission or separate consent of the user will be obtained through a pop-up window or by jumping to a confirmation page, and after obtaining the separate permission or separate consent of the user, the necessary related data of the user for the normal operation of the embodiments of the present application will be obtained.

[0089] Figure 4 is a flowchart of a data processing method of a collaborative whiteboard provided by an embodiment of the present application. The data processing method can be executed by a server, can be executed by a terminal, or can be executed by a terminal and a server in cooperation. In the following embodiments, the method executed by the server is taken as an example for description. Referring to Figure 4 , the data processing method can include but is not limited to steps 410 to 430.

[0090] Step 410: receiving a first data acquisition request for whiteboard data of a collaborative whiteboard sent by a terminal, wherein the first data acquisition request includes a first whiteboard data range.

[0091] In an embodiment, the collaborative whiteboard is a digital tool that can realize the purpose of multi-person collaboration and real-time sharing of ideas, content and data. On the collaborative whiteboard, the user can not only perform drawing and writing operations, but also perform operations such as adding text, images, annotations, charts, etc. Different terminals can perform collaborative processing on the collaborative whiteboard through the Internet or a local area network, etc., have real-time and cross-regional collaboration capabilities, and can realize real-time collaboration of multiple users at different locations.

[0092] In an embodiment, the whiteboard data of the collaborative whiteboard can include all the content created or edited by the user on the collaborative whiteboard, such as drawings, texts, images, annotations, charts, etc. These whiteboard data can be stored on the server of the collaborative whiteboard so that the user can access and share at any time. Generally, the specific whiteboard data can include but is not limited to the following: all text content input by the user, including titles, paragraphs, labels, annotations, etc.; all graphics, charts, diagrams, etc. drawn by the user; all pictures, photos, icons, etc. added by the user; annotations, explanations or comments made by the user on various content on the collaborative whiteboard; editing history, operation steps and time stamp of the user; permission setting information for specifying which users can access, edit or comment on the whiteboard content; other metadata, such as creation time, modification time, size, etc. of the collaborative whiteboard. In general, the whiteboard data of the collaborative whiteboard covers all the content and related information created, edited and shared by the user in the collaboration process.

[0093] In an embodiment, in the scenario where the whiteboard data of the collaborative whiteboard is too much, that is, when the user creates or edits too much content and element nodes on the collaborative whiteboard, the user takes a long time to open the collaborative whiteboard and is low in efficiency. In order to shorten the time consumption of the user opening the collaborative whiteboard, when the user uses or views the collaborative whiteboard, part of the whiteboard data can be loaded and rendered first. Specifically, when the user views or uses the collaborative whiteboard, the terminal can first send a first data acquisition request for the whiteboard data of the collaborative whiteboard to the server, and the first data acquisition request contains a first whiteboard data range. The first whiteboard data range can be the home page range of the collaborative whiteboard, or any local area range of the collaborative whiteboard, which is not limited here. Among them, the local area range of the collaborative whiteboard can be the area range displayed by the terminal when the user exited the collaborative whiteboard in the last use of the collaborative whiteboard. For example, assuming that the interface content displayed by the terminal when the user exited the collaborative whiteboard in the last use of the collaborative whiteboard is the content of the middle area range of the home page of the collaborative whiteboard, then when the user opens the collaborative whiteboard this time, the first whiteboard data range in the first data acquisition request sent by the terminal to the server can be the middle area range of the home page of the collaborative whiteboard displayed by the terminal when the user exited the collaborative whiteboard last time. Since the terminal requests the whiteboard data within the first whiteboard data range, the server does not need to send all the whiteboard data to the terminal for rendering and display at one time, so it is beneficial to shorten the time consumption of opening the collaborative whiteboard, thereby improving the speed of opening the collaborative whiteboard, so that the user can start viewing and editing the content of the collaborative whiteboard faster.

[0094] In an embodiment, the first whiteboard data range can be a rectangular range, in which case the first whiteboard data range can be represented by coordinates. For example, the first whiteboard data range can be represented by the coordinates of the upper left corner and the lower right corner of the rectangle, or by the coordinates of the upper right corner and the lower left corner of the rectangle. In this case, when the user needs to view or use the collaborative whiteboard, the first whiteboard data range sent by the terminal to the server can be the coordinates of the upper left corner and the coordinates of the lower right corner, or the coordinates of the upper right corner and the coordinates of the lower left corner. For example, if the upper left corner is at (105, 260) and the lower right corner is at (210, 330), then the data range of the whiteboard data requested by the terminal can be determined according to the two coordinates. For example, in this example, it can be determined that the whiteboard data requested by the terminal is the data in the data range with horizontal axis coordinates from 105 to 201 and vertical axis coordinates from 260 to 330.

[0095] Step 420: Obtain the partial whiteboard data in the whiteboard data according to the first whiteboard data range, and send the partial whiteboard data to the terminal for rendering and display.

[0096] In an embodiment, after receiving and parsing the first data acquisition request sent by the terminal, the server can obtain the first whiteboard data range in the first data acquisition request. At this time, the server can return the partial whiteboard data within the first whiteboard data range to the terminal for rendering and display. Since the partial whiteboard data within the first whiteboard data range is sent to the terminal for rendering and display first, the user does not need to wait for all the whiteboard data of the collaborative whiteboard to be loaded when viewing or using the collaborative whiteboard. Therefore, even if there are many data elements in the collaborative whiteboard, the time consumption for opening the collaborative whiteboard can be greatly shortened, thereby improving the speed of opening the collaborative whiteboard and enabling the user to start viewing and editing the content of the collaborative whiteboard more quickly.

[0097] Referring to Figure 5 In an embodiment, in the process of obtaining the partial whiteboard data in the whiteboard data according to the first whiteboard data range, the server can include but is not limited to steps 510 to 530.

[0098] Step 510: Traverse the position information of all data elements in the whiteboard data.

[0099] In an embodiment, the data elements in the whiteboard data refer to drawings, texts, images, annotations, charts, and other content in the whiteboard data. Each drawing, each text, each image, each annotation, and each chart can be considered as a data element. Each data element in the whiteboard data has a position attribute, which records the position information of the data element in the collaborative whiteboard.

[0100] In an embodiment, after the user creates or edits data elements on the collaborative whiteboard, these data elements are cached in the local cache of the server, so that when the server receives the first data acquisition request sent by the terminal, the previously cached data elements can be pulled from the local cache, and then by traversing the position information of these data elements, the data elements within the first whiteboard data range are found.

[0101] In an embodiment, when the data elements in the local cache of the server are deleted due to expiration, the server can request the database to query all user editing operations of the collaborative whiteboard, and apply these editing operations in time sequence on the blank collaborative whiteboard, thereby constructing complete whiteboard data. Then, the server can traverse the position information of all data elements in the whiteboard data to find the data elements within the first whiteboard data range. It should be noted that after the server constructs the complete whiteboard data based on all user editing operations in the database, the complete whiteboard data can be asynchronously updated to the local cache, so that when the subsequent user accesses the collaborative whiteboard again, the whiteboard data can be quickly loaded without reacquiring from the database, thereby improving the user experience.

[0102] In an embodiment, the position information of the data element refers to the coordinate information of the data element in the collaborative whiteboard. For example, when the data element is a point, the coordinate (x, y) can be used to represent the position information of the point in the collaborative whiteboard; when the data element is a line, the start coordinate (x1, y1) and the end coordinate (x2, y2) can be used to represent the position information of the line in the collaborative whiteboard.

[0103] Step 520: For each data element, the position information is intersected with the first whiteboard data range to obtain the intersection judgment result of each data element.

[0104] In an embodiment, by intersecting the position information of each data element with the first whiteboard data range, it can be determined whether each data element is within the first whiteboard data range, thereby improving the accuracy of acquiring partial whiteboard data.

[0105] In an embodiment, the first whiteboard data range can include a first whiteboard data position coordinate and a second whiteboard data position coordinate, and the first whiteboard data position coordinate and the second whiteboard data position coordinate are the coordinates of two opposite vertices of a display area for displaying partial whiteboard data. For example, the first whiteboard data position coordinate can be the top-left corner coordinate of the display area, and the second whiteboard data position coordinate can be the bottom-right corner coordinate of the display area; or the first whiteboard data position coordinate can be the top-right corner coordinate of the display area, and the second whiteboard data position coordinate can be the bottom-left corner coordinate of the display area.

[0106] In an embodiment, the first whiteboard data position coordinate, the second whiteboard data position coordinate and the position information can all include a horizontal axis coordinate and a vertical axis coordinate, in which case, the coordinate range of the first whiteboard data range can be determined according to the first whiteboard data position coordinate and the second whiteboard data position coordinate, and then for each data element, the position information is intersected with the coordinate range of the first whiteboard data range, and the local whiteboard data required is determined by judging whether the horizontal axis coordinate and the vertical axis coordinate of the position information are within the coordinate range of the first whiteboard data range.

[0107] In an embodiment, as shown in FIG. 6, the process in which the server intersects the position information with the first whiteboard data range can include, but is not limited to, steps 610 to 640. Figure 6

[0108] Step 610: determining a horizontal axis coordinate range according to the horizontal axis coordinate of the first whiteboard data position coordinate and the horizontal axis coordinate of the second whiteboard data position coordinate;

[0109] Step 620: determining a vertical axis coordinate range according to the vertical axis coordinate of the first whiteboard data position coordinate and the vertical axis coordinate of the second whiteboard data position coordinate;

[0110] Step 630: judging whether the horizontal axis coordinate and the vertical axis coordinate of the position information are within the horizontal axis coordinate range and the vertical axis coordinate range.

[0111] Step 640: if the horizontal axis coordinate of the position information is within the horizontal axis coordinate range and the vertical axis coordinate of the position information is within the vertical axis coordinate range, it is determined that the position information intersects with the first whiteboard data range; if the horizontal axis coordinate of the position information is outside the horizontal axis coordinate range or the vertical axis coordinate of the position information is outside the vertical axis coordinate range, it is determined that the position information does not intersect with the first whiteboard data range.

[0112] In an embodiment, assuming that the first whiteboard data range is the whiteboard home page, and the display area of the whiteboard home page is a coordinate range composed of its upper left corner coordinate (x3, y3) and lower right corner coordinate (x4, y4), then the first whiteboard data position coordinate is the upper left corner coordinate (x3, y3), and the second whiteboard data position coordinate is the lower right corner coordinate (x4, y4), at this time, according to the first whiteboard data position coordinate and the second whiteboard data position coordinate, the horizontal axis coordinate range of the first whiteboard data range can be obtained as [x3, x4], and the vertical axis coordinate range can be obtained as [y4, y3].

[0113] ​In an embodiment, when the data element is a point in the collaborative whiteboard, its position information can be represented by coordinates (x5, y5). If the horizontal coordinate x5 of the data element is within the horizontal axis coordinate range [x3, x4] of the first whiteboard data range, and the vertical coordinate y5 of the data element is within the vertical axis coordinate range [y4, y3] of the first whiteboard data range, i.e. the data element is within the first whiteboard data range, it can be determined that the position information of the data element has intersection with the first whiteboard data range. If any one of the horizontal coordinate x5 or the vertical coordinate y5 of the data element is outside the coordinate range of the first whiteboard data range, i.e. the data element is not within the first whiteboard data range, it can be determined that the position information of the data element has no intersection with the first whiteboard data range. As shown in Figure 7 , assuming that the first whiteboard data position coordinates are (50, 320) and the second whiteboard data position coordinates are (280, 150), the horizontal axis coordinate range of the first whiteboard data range is [50, 280] and the vertical axis coordinate range of the first whiteboard data range is [150, 320] can be obtained. In Figure 7 , assuming that the coordinate position of point A is (60, 160), the coordinate position of point B is (48, 330), and the coordinate position of point C is (150, 330). According to the coordinates of point A, it can be determined that the horizontal axis coordinate and the vertical axis coordinate of the coordinate position of point A are both within the first whiteboard data range, so it can be determined that the position information of point A has intersection with the first whiteboard data range. According to the coordinates of point B, it can be determined that the horizontal axis coordinate and the vertical axis coordinate of the coordinate position of point B are both outside the first whiteboard data range, so it can be determined that the position information of point B has no intersection with the first whiteboard data range. According to the coordinates of point C, it can be determined that the horizontal axis coordinate of the coordinate position of point C is within the horizontal axis coordinate range of the first whiteboard data range, but the vertical axis coordinate of the coordinate position of point C is not within the vertical axis coordinate range of the first whiteboard data range, so it can be determined that the position information of point C has no intersection with the first whiteboard data range.

[0114] In an embodiment, when the data element is a line segment, its position information can be represented by the start point coordinate (x6, y6) and the end point coordinate (x7, y7). When both the start point horizontal coordinate x6 and the end point horizontal coordinate x7 are within the horizontal axis coordinate range of the first whiteboard data range, and both the start point vertical coordinate y6 and the end point vertical coordinate y7 are within the vertical axis coordinate range of the first whiteboard data range, it can be determined that the position information of the line segment has intersection with the first whiteboard data range, i.e., the line segment is within the first whiteboard data range. When only one of the start point coordinate (x6, y6) and the end point coordinate (x7, y7) is within the first whiteboard data range, it indicates that the line segment is partially within the first whiteboard data range, and thus it can be determined that the position information of the line segment has intersection with the first whiteboard data range. When neither the start point coordinate (x6, y6) nor the end point coordinate (x7, y7) is within the first whiteboard data range, first the trajectory of the line segment in the collaborative whiteboard is determined according to the start point coordinate (x6, y6) and the end point coordinate (x7, y7), and then it is determined whether the trajectory of the line segment crosses the first whiteboard data range. If the trajectory of the line segment crosses the first whiteboard data range, it can be determined that the position information of the line segment has intersection with the first whiteboard data range. If the trajectory of the line segment does not cross the first whiteboard data range, it can be determined that the position information of the line segment has no intersection with the first whiteboard data range. Refer to Figure 8 , it is assumed that the first whiteboard data position coordinate is (50, 320) and the second whiteboard data position coordinate is (280, 150), and thus the horizontal axis coordinate range of the first whiteboard data range is [50, 280] and the vertical axis coordinate range of the first whiteboard data range is [150, 320]. In Figure 8 , the start point coordinate C of the line segment CD is (55, 77) and the end point coordinate D is (99, 110). Since the horizontal and vertical coordinates of the coordinate C and the coordinate D are all outside the horizontal and vertical axis coordinate range of the first whiteboard data range, and the trajectory of the line segment CD does not cross the first whiteboard data range, the line segment CD has no intersection with the first whiteboard data range. The start point coordinate E of the line segment EF is (60, 155) and the end point coordinate F is (120, 300). Since the horizontal and vertical coordinates of the coordinate E and the coordinate F are all within the horizontal and vertical axis coordinate range of the first whiteboard data range, the line segment EF has intersection with the first whiteboard data range. The start point coordinate M of the line segment MN is (200, 140) and the end point coordinate N is (120, 300). Since the start point coordinate M (200, 140) is not within the horizontal and vertical axis coordinate range of the first whiteboard data range, and the end point coordinate N (120, 300) is within the horizontal and vertical axis coordinate range of the first whiteboard data range, the line segment MN has intersection with the first whiteboard data range.

[0115] It should be noted that the type of data elements on the collaborative whiteboard can be various, and the data elements of points and lines provided herein are only for the embodiment and do not limit the type of data elements.

[0116] Step 530: In the whiteboard data, the intersection judgment result is represented as the data element with intersection, and is determined as the local whiteboard data.

[0117] In an embodiment, for each data element of the whiteboard data, after the intersection judgment of the position information of the data element with the first whiteboard data range, when the position information of a data element has intersection with the first whiteboard data range, the data element can be determined as the local whiteboard data, so that the local whiteboard data can be sent to the terminal for rendering and display in the subsequent; and when the position information of a data element has no intersection with the first whiteboard data range, the data element can be discarded, and the intersection judgment operation is continued for the next data element until the intersection judgment operation for all data elements of the whiteboard data is completed. Since the data element with intersection with the first whiteboard data range is determined as the local whiteboard data, and the data element with no intersection with the first whiteboard data range is discarded, when the local whiteboard data is returned to the terminal for rendering and display, the problem of time-consuming caused by the application of redundant data elements to the whiteboard can be avoided, thereby reducing the congestion caused by excessive data transmission in the network and improving the user experience.

[0118] It should be noted that when the data element has partial intersection with the first whiteboard data range, that is, part of the content of the data element is within the first whiteboard data range, and the remaining part of the content of the data element is outside the first whiteboard data range, the part of the content of the data element within the first whiteboard data range can be obtained, and then the part of the content is determined as the local whiteboard data. And the remaining part of the content of the data element outside the first whiteboard data range can be sent to the terminal for incremental rendering as subsequent residual whiteboard data.

[0119] In an embodiment, in the process of requesting the database to query all user editing operations of the collaborative whiteboard and applying the editing operations on the blank collaborative whiteboard in time sequence, the server can synchronously check whether the position information of the current data element has intersection with the first whiteboard data range, and determine the current data element with intersection with the first whiteboard data range as the local whiteboard data, and then discard the current data element with no intersection with the first whiteboard data range, thereby reducing unnecessary data processing, improving the response speed of the server, and enhancing the user experience.

[0120] Step 430: receiving a second data acquisition request sent by the terminal when rendering and displaying the partial whiteboard data, and sending the remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request.

[0121] In an embodiment, the incremental rendering refers to re-rendering only the changed partial whiteboard data instead of re-rendering the entire whiteboard data. Compared with re-rendering the entire whiteboard data, the incremental rendering updates only the affected partial whiteboard data. It can be understood that after the terminal sends the first data acquisition request to the server, since the first whiteboard data range of the first data acquisition request is only partial whiteboard data of the entire collaborative whiteboard, for example, the first page of the whiteboard or a local area of the first page, the server only returns the partial whiteboard data within the first whiteboard data range to the terminal for rendering and displaying in response to the first data acquisition request. For the remaining partial whiteboard data, the terminal needs to send a data request to the server again to obtain the data. When the server receives the second data acquisition request sent by the terminal, the server returns the remaining whiteboard data to the terminal for incremental rendering. Since the terminal has completed the rendering and displaying of the partial whiteboard data within the first whiteboard data range at this time, for the partial whiteboard data that has been rendered and displayed, the remaining whiteboard data sent by the server to the terminal is the part to be rendered. The remaining whiteboard data is rendered on the basis of the partial whiteboard data that has been rendered and displayed, which is incremental rendering. In addition, since the second data acquisition request is sent by the terminal when rendering and displaying the partial whiteboard data, the process of the server sending the remaining whiteboard data to the terminal for incremental rendering according to the second data acquisition request does not affect the normal use of the collaborative whiteboard by the user.

[0122] In an embodiment, the terminal can use JavaScript to dynamically load and render the partial whiteboard data when rendering and displaying the partial whiteboard data. For example, when the partial whiteboard data is the first page data of the whiteboard, the terminal can use JavaScript to load and render the first page data of the whiteboard, so that the user can quickly see the rendering of the first page data. JavaScript is a dynamic scripting language based on prototype programming and multi-paradigm, and supports object-oriented, imperative, and declarative (such as functional programming) paradigms. Through JavaScript, the first page data of the whiteboard can be quickly rendered, thereby shortening the time-consuming of opening the collaborative whiteboard and improving the use efficiency and use experience of the user.

[0123] In an embodiment, the second data acquisition request can include the first whiteboard data range and the data pull mark, and the data pull mark is used to indicate to acquire the remaining whiteboard data. In the process of sending the remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request, the server can first acquire the second whiteboard data range according to the first whiteboard data range and the data pull mark, wherein the second whiteboard data range is the complement range of the first whiteboard data range, then acquire the remaining whiteboard data in the whiteboard data according to the second whiteboard data range, and then send the remaining whiteboard data to the terminal for incremental rendering.

[0124] In an embodiment, the data pull mark can be represented in different ways, including using strings, numbers, constants, Boolean values, and special symbols, etc., which are not limited here, and the data pull mark can indicate to acquire the remaining whiteboard data.

[0125] Referring to Figure 9 In an embodiment, the process of the server acquiring the remaining whiteboard data in the whiteboard data according to the first whiteboard data range and the data pull mark can include but is not limited to steps 910 to 930.

[0126] Step 910: Traverse the position information of all data elements in the whiteboard data.

[0127] Step 920: Calculate the second whiteboard data range according to the data pull mark and the first whiteboard data range, and for each data element, judge the intersection of its position information and the second whiteboard data range to obtain the intersection judgment result of each data element.

[0128] Step 930: In all whiteboard data, the intersection judgment result is represented as the data element with intersection, and is determined as the remaining whiteboard data.

[0129] In an embodiment, since the data pull mark is used to indicate to acquire the remaining whiteboard data, it can be determined that the second whiteboard data range is the data range of the collaboration whiteboard except the first whiteboard data range, so the complement calculation of the first whiteboard data range relative to the entire whiteboard data can be performed according to the data pull mark, thereby obtaining the second whiteboard data range.

[0130] In an embodiment, referring to Figure 10 Since the second whiteboard data range is the complement range of the first whiteboard data range, and the first whiteboard data range includes the first whiteboard data position coordinate and the second whiteboard data position coordinate, step 920 can include but is not limited to steps 1010 to 1040.

[0131] Step 1010: determining the horizontal axis coordinate range of the second whiteboard data range according to the data complement pulling mark, the horizontal axis coordinate of the first whiteboard data position coordinate and the horizontal axis coordinate of the second whiteboard data position coordinate;

[0132] Step 1020: determining the vertical axis coordinate range of the second whiteboard data range according to the data complement pulling mark, the vertical axis coordinate of the first whiteboard data position coordinate and the vertical axis coordinate of the second whiteboard data position coordinate;

[0133] Step 1030: judging whether the horizontal axis coordinate and the vertical axis coordinate of the position information are within the horizontal axis coordinate range and the vertical axis coordinate range;

[0134] Step 1040: if the horizontal axis coordinate of the position information is within the horizontal axis coordinate range and the vertical axis coordinate of the position information is within the vertical axis coordinate range, it is determined that the position information has intersection with the second whiteboard data range; if the horizontal axis coordinate of the position information is not within the horizontal axis coordinate range or the vertical axis coordinate of the position information is not within the vertical axis coordinate range, it is determined that the position information has no intersection with the second whiteboard data range.

[0135] In an embodiment, the process of step 1010 can include: first calculating the horizontal axis coordinate range according to the horizontal axis coordinate of the first whiteboard data position coordinate and the horizontal axis coordinate of the second whiteboard data position coordinate, and then performing the complement set calculation on the horizontal axis coordinate range according to the data complement pulling mark to obtain the horizontal axis coordinate range of the second whiteboard data range.

[0136] In an embodiment, the process of step 1020 can include: first calculating the vertical axis coordinate range according to the vertical axis coordinate of the first whiteboard data position coordinate and the vertical axis coordinate of the second whiteboard data position coordinate, and then performing the complement set calculation on the vertical axis coordinate range according to the data complement pulling mark to obtain the vertical axis coordinate range of the second whiteboard data range.

[0137] Referring to Figure 11In one embodiment, it is assumed that the display area of ​​the partial whiteboard data is the coordinate range consisting of its upper left corner coordinates (x0, y0) and lower right corner coordinates (x1, y1). That is, the first whiteboard data range is the coordinate range consisting of the coordinates (x0, y0) and the coordinates (x1, y1). Since the terminal can send a second data acquisition request to the server for the remaining whiteboard data while receiving the partial whiteboard data of the first whiteboard data range from the server, the terminal can send the second data acquisition request to the server including the coordinates (x0, y0), the coordinates (x1, y1), and the data supplement tag "tag" to obtain the remaining whiteboard data. After receiving the second data acquisition request, the server can first determine whether there is a data supplement mark "tag" in the second data acquisition request. When the server detects that there is a data supplement mark "tag" in the second data acquisition request, it can calculate the second whiteboard data range of the remaining whiteboard data based on the coordinates (x0, y0) and the coordinates (x1, y1). Since the second whiteboard data range is the complement range of the first whiteboard data range, and x0 is less than x1 and y0 is greater than y1, the horizontal axis coordinate range of the second whiteboard data range is (-∞, x0) and (x1, +∞), and the vertical axis coordinate range is (-∞, y1) and (y0, +∞). After obtaining the second whiteboard data range, the server can obtain the remaining whiteboard data in the whiteboard data based on the second whiteboard data range, and then send the remaining whiteboard data to the terminal for incremental rendering.

[0138] In one embodiment, the second data acquisition request may include a second whiteboard data range, wherein the second whiteboard data range is the complement range of the first whiteboard data range. When the server sends the remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request, it can obtain the remaining whiteboard data in the whiteboard data according to the second whiteboard data range, and then send the remaining whiteboard data to the terminal for incremental rendering.

[0139] See also Figure 12 In one embodiment, the process of the server acquiring the remaining whiteboard data from the whiteboard data according to the second whiteboard data range may include but is not limited to steps 1210 to 1230.

[0140] Step 1210: traverse the location information of all data elements in the whiteboard data.

[0141] Step 1220: For each data element, perform an intersection judgment on its position information and the second whiteboard data range to obtain an intersection judgment result for each data element.

[0142] Step 1230: In all whiteboard data, the intersection determination result is represented as data elements with intersection, and is determined as the remaining whiteboard data.

[0143] In an embodiment, assuming that the first whiteboard data range is a coordinate range composed of a coordinate (x0, y0) and a coordinate (x1, y1), the terminal can calculate a second whiteboard data range according to the first whiteboard data range, which is a coordinate range composed of a coordinate (-∞, x0), a coordinate (x1, +∞), a coordinate (-∞, y1), and a coordinate (y0, +∞). When sending a second data acquisition request for the remaining whiteboard data to the server, the terminal can send the second data acquisition request including the second whiteboard data range to the server, and in response to receiving the second data acquisition request, the server can traverse the position information of all data elements in the whiteboard data, determine a data element as the remaining whiteboard data when the position information of the data element has an intersection with the second whiteboard data range, and send the remaining whiteboard data to the terminal for incremental rendering.

[0144] In an embodiment, in the process of sending the remaining whiteboard data to the terminal for incremental rendering, the remaining whiteboard data can be divided into multiple data pages first, then the sending priority of each data page is obtained, and then the multiple data pages are sent to the terminal for incremental rendering in order from high to low according to the sending priority. Since the remaining whiteboard data is divided into multiple data pages and sent to the terminal for incremental rendering, even in the case that the elements of the remaining whiteboard data are many, the rendering time of the remaining whiteboard data can be effectively shortened, so that the user can view and use the remaining whiteboard content faster, and the use efficiency and use experience of the user are improved.

[0145] In an embodiment, when dividing the remaining whiteboard data into multiple data pages, it can be judged whether the first whiteboard data range is smaller than the home page range of the collaborative whiteboard. When the first whiteboard data range is smaller than the home page range, the home page range can be used as a division range to divide the remaining whiteboard data, to obtain multiple data pages with the same size as the home page range. When the first whiteboard data range is greater than or equal to the home page range, the first whiteboard data range can be used as a division range to divide the remaining whiteboard data, to obtain multiple data pages with the same size as the first whiteboard data range.

[0146] In an embodiment, when dividing the remaining whiteboard data into multiple data pages, the remaining whiteboard data can also be divided according to a fixed size, for example, each data page displays a fixed number of whiteboard data or a fixed size of display area.

[0147] In an embodiment, in order to enable each data page to be rendered in order at the terminal, so as to prevent congestion caused by excessive data transmission during rendering, affecting user experience, after the remaining whiteboard data pages are completed, the server can send the data pages to the terminal for incremental rendering according to the sending priority of each data page. When obtaining the sending priority of each data page, the historical operation information of the collaborative whiteboard can be obtained first, then the historical sub-operation information corresponding to each data page in the historical operation information can be obtained, and then the sending priority of each data page can be determined according to the historical sub-operation information corresponding to each data page.

[0148] In an embodiment, the historical operation information of the collaborative whiteboard can include operation information such as drawing, text input, picture insertion, etc. performed by the user on the collaborative whiteboard. It can be understood that the number of operations, operation time and operation duration, etc. performed by the user on the collaborative whiteboard can be saved, thereby forming the historical operation information of the collaborative whiteboard. Since the historical operation information of the collaborative whiteboard includes the historical operation information of each data element of the remaining whiteboard data, when the remaining whiteboard data pages are divided, the historical operation information of the data element can be obtained according to the position information of each data element of the data page in the remaining whiteboard data, thereby obtaining the historical sub-operation information of the data page, which includes the historical operation number, operation time interval and historical operation duration corresponding to the data page. By analyzing the historical sub-operation information of each data page, it can be identified which operations in which data page are more important or more urgent to the user, and therefore the sending priority of each data page can be determined according to the historical sub-operation information corresponding to each data page.

[0149] In an embodiment, when a data page is accessed or operated only once, a record can be generated, that is, the historical sub-operation information corresponding to the data page has only one record. Since each data page can be accessed or operated multiple times, each operation can generate a record, and therefore the historical operation number, operation time interval and historical operation duration corresponding to each data page can include multiple records.

[0150] In an embodiment, when a data page is accessed or operated only once, the historical sub-operation information corresponding to the data page can be represented as follows: the historical operation number is 1, the operation time interval is [9:30-10:30], and the historical operation duration is 1 hour.

[0151] In an embodiment, assuming that the data page is accessed three times, the corresponding historical sub-operation information can be expressed as follows: the historical operation times are [100, 120, 110], the operation time intervals are [9:00-9:10, 10:00-11:00, 11:00-12:00], and the historical operation durations are [2, 1.5, 3]. Among them, the historical operation times [100, 120, 110] are an array, indicating that the data page is accessed three times, the operation times of the first access are 100 times, the operation times of the second access are 120 times, and the operation times of the third access are 110 times. The operation time intervals [9:00-9:10, 10:00-11:00, 11:00-12:00] are an array, indicating that the data page is accessed three times, the operation time interval of the first access is 9:00-9:10, the operation time interval of the second access is 10:00-11:00, and the operation time interval of the third access is 11:00-12:00. Among them, 11:00-12:00 is the operation time interval of the most recent operation. The historical operation durations [2, 1.5, 3] are an array, indicating that the data page is accessed three times, the operation duration of the first access is 2 hours, the operation duration of the second access is 1.5 hours, and the operation duration of the third access is 3 hours.

[0152] In an embodiment, the historical sub-operation information can include the historical operation times and the operation time intervals. In the process of determining the sending priority of each data page according to the corresponding sub-operation information of each data page, the first initial priority of each data page can be set according to the corresponding historical operation times of each data page, and then the first initial priority of each data page can be corrected according to the corresponding operation time intervals of each data page, to obtain the sending priority of each data page.

[0153] In an embodiment, since the data page with more historical operation times can indicate that the user has operated more frequently, when setting the first initial priority of the data page, the first initial priority of the data page with more historical operation times can be set to be higher, and when correcting the first initial priority according to the operation time interval of the data page, the first initial priority can be corrected according to the operation time of the most recent operation time interval. If the most recent operation time of the data page is closer to the current time, it means that the possibility of being operated by the user is higher, and therefore the priority of the data page can be improved accordingly, and vice versa. Through this method, the sending priority of the data page can be determined more accurately on the basis of considering the historical operation information, to meet the use requirements of the user and improve the response speed of the system and the user experience.

[0154] In an embodiment, it is assumed that the remaining whiteboard data is divided into data pages A, B and C, and the historical sub-operation information of the data pages A, B and C is as follows: the historical operation times of the data page A is 10, and the operation time of the last operation is 1 hour ago; the historical operation times of the data page B is 3, and the operation time of the last operation is 30 minutes ago; the historical operation times of the data page C is 3, and the operation time of the last operation is 10 minutes ago. In the process of determining the sending priority of each data page according to the historical sub-operation information corresponding to each data page, the initial priority of the data page A can be set to 10, the initial priority of the data page B can be set to 3, and the initial priority of the data page C can be set to 3 according to the historical operation times of the data pages, and then the initial priorities are corrected according to the operation time of the last operation of each data page. It can be judged from the operation time of the last operation of each data page that the operation time of the last operation of the data page A is far from the current time, and the initial priority thereof can be appropriately reduced, for example, to 8; the operation time of the last operation of the data page B is close to the current time, and the initial priority thereof can be appropriately increased, for example, to 5; and the operation time of the last operation of the data page C is the closest to the current time, and the initial priority thereof can be increased, for example, to 7. After the initial priorities of the three data pages A, B and C are corrected respectively, the final priority of the data page A is 8, the final priority of the data page B is 5, and the final priority of the data page C is 7, and the final priorities of the data pages are determined as the sending priorities. When the server sends the remaining whiteboard data to the terminal, the data pages can be sent to the terminal in the order of the data page A, the data page C and the data page B according to the sizes of the sending priorities of the three data pages for incremental rendering.

[0155] In an embodiment, the historical sub-operation information can also include the historical operation time length and the operation time interval. When the sending priority of each data page is determined according to the sub-operation information corresponding to each data page, the second initial priority of each data page can be set according to the historical operation time length corresponding to each data page, and then the second initial priority of each data page is corrected according to the operation time interval corresponding to each data page to obtain the sending priority of each data page.

[0156] In an embodiment, since the historical operation duration is accumulated by multiple operations, the data page with longer historical operation duration can have higher activity and importance, and when the second initial priority is set for the data page, the second initial priority of the data page with longer historical operation duration can be set higher. When the priority of the second initial priority is corrected according to the operation time interval of the data page, the priority of the second initial priority can be corrected according to the last operation time of the time operation interval, and if the last operation time of the data page is closer to the current time, it means that the possibility of being operated by the user is higher, and thus the priority of the data page can be increased accordingly, and vice versa.

[0157] In an embodiment, assuming that the remaining whiteboard data is divided into data pages D, E and F, and the historical sub-operation information of the data pages D, E and F is as follows: the historical operation duration of the data page D is 5 hours, and the last operation time is 1 hour ago; the historical operation duration of the data page E is 3 hours, and the last operation time is 30 minutes ago; the historical operation duration of the data page F is 1 hour, and the last operation time is 10 minutes ago. In the process of determining the sending priority of each data page according to the historical sub-operation information corresponding to each data page, the initial priority of the data page D can be set to 5, the initial priority of the data page E can be set to 3, and the initial priority of the data page F can be set to 1 according to the historical operation duration of the data page, and then the initial priority is corrected according to the last operation time of each data page. According to the last operation time of the data page, it can be judged that the last operation time of the data page D is far from the current time, and the initial priority thereof can be appropriately reduced, for example, to 3; the last operation time of the data page E is close to the current time, and the initial priority thereof can be appropriately increased, for example, to 5; and the last operation time of the data page F is the closest to the current time, and the initial priority thereof can be increased, for example, to 6. After the initial priority of the three data pages D, E and F is corrected respectively, the final priority of the data page D is 3, the final priority of the data page E is 5, and the final priority of the data page F is 6, and the final priority of the data page is determined as the sending priority. When the server sends the remaining whiteboard data to the terminal, the data pages can be sent to the terminal in the order of the data page F, the data page E and the data page D according to the size of the sending priority of the three data pages.

[0158] In an embodiment, the historical sub-operation information can further include a historical operation times and a historical operation duration. When determining the sending priority of each data page according to the historical sub-operation information corresponding to each data page, a third initial priority of each data page can be set according to the historical operation times corresponding to each data page, and then the third initial priority of each data page is corrected according to the historical operation duration corresponding to each data page to obtain the sending priority of each data page.

[0159] In an embodiment, it is assumed that the remaining whiteboard data is divided into data pages L, M and N, and the historical sub-operation information of the data pages L, M and N is as follows: the historical operation times of the data page L is 100, and the historical operation duration is 10 hours; the historical operation times of the data page M is 50, and the historical operation duration is 5 hours; the historical operation times of the data page N is 20, and the historical operation duration is 2 hours. In the process of determining the sending priority of each data page according to the historical sub-operation information corresponding to each data page, the initial priority of the data page L can be set to 100, the initial priority of the data page M can be set to 50, and the initial priority of the data page N can be set to 20 according to the historical operation times of the data pages, and then the initial priority is corrected according to the historical operation duration of each data page. It can be judged from the historical operation duration of the data pages that the historical operation duration of the data page L is relatively long, and the initial priority thereof can be appropriately reduced, for example, to 80; the historical operation duration of the data page M is relatively short, and the initial priority thereof can be appropriately increased, for example, to 70; and the historical operation duration of the data page N is the shortest, and the initial priority thereof can be increased, for example, to 60. After the initial priority of the three data pages L, M and N is corrected respectively, the final priority of the data page L is 80, the final priority of the data page M is 70, and the final priority of the data page N is 60, and the final priority of the data pages is determined as the sending priority. When the server sends the remaining whiteboard data to the terminal, the data pages can be sent to the terminal in the order of the data page L, the data page M and the data page N according to the size of the sending priority of the three data pages for incremental rendering.

[0160] In an embodiment, when determining the sending priority of each data page according to the sub-operation information corresponding to each data page, the historical operation times, the historical operation time lengths and the operation time intervals corresponding to each data page can be first vectorized to obtain a historical operation times vector, a historical operation time lengths vector and an operation time intervals vector corresponding to each data page, and then for each data page, a priority prediction model is called to perform priority prediction according to the historical operation times vector, the historical operation time lengths vector and the operation time intervals vector to obtain the sending priority of each data page. The priority prediction model can be composed of a conventional deep neural network model or a convolutional neural network model, and the related model structure and model principle of the deep neural network model or the convolutional neural network model can be referred to the introduction in the related art, which will not be described here. Since the historical operation times, the historical operation time lengths and the operation time intervals corresponding to each data page are comprehensively considered, and the vectorized historical operation times, the historical operation time lengths and the operation time intervals are transmitted to the priority prediction model for priority prediction, the accuracy of the sending priority of the data page can be improved.

[0161] In an embodiment, when determining the sending priority of each data page according to the sub-operation information corresponding to each data page, the sending priority of each data page can also be determined by the weighted sum of the historical operation times, the historical operation time length and the operation time interval of the data page. Assuming that the remaining whiteboard data is divided into data page J, data page Q and data page K, and the historical sub-operation information of data page J, data page Q and data page K is as follows: the historical operation times of data page J is 200 times, the historical operation time length is 20 hours, and the operation time interval is 2 days; the historical operation times of data page Q is 150 times, the historical operation time length is 15 hours, and the operation time interval is 1 day; the historical operation times of data page K is 100 times, the historical operation time length is 10 hours, and the operation time interval is 3 days. After confirming the historical sub-operation information of data page J, data page Q and data page K, the first initial priority corresponding to the historical operation times, the second initial priority corresponding to the historical operation time length and the third initial priority corresponding to the operation time interval can be set for the three data pages according to the historical operation times, the historical operation time length and the operation time interval of the three data pages, and then the weights of the first initial priority, the second initial priority and the third initial priority of the three data pages can be allocated according to the historical operation times, the historical operation time length and the operation time interval of the three data pages, and then for each data page, the first value obtained by multiplying the weight of the first initial priority by the first initial priority, the second value obtained by multiplying the weight of the second initial priority by the second initial priority, and the third value obtained by multiplying the weight of the third initial priority by the third initial priority are added to obtain the sending priority of the data page. For example, assuming that the first initial priority of data page J is 200, the second initial priority is 20, and the third priority is 2; the first initial priority of data page Q is 150, the second initial priority is 15, and the third priority is 1; the first initial priority of data page K is 100, the second initial priority is 10, and the third priority is 3. For each data page, the weight W1 of the first initial priority is 0.4, the weight W2 of the second initial priority is 0.5, and the weight W3 of the third initial priority is 0.1. Then, for each data page, after calculating the weighted sum of the first initial priority, the second initial priority and the third initial priority according to W1, W2 and W3, the sending priority S1 of data page J is 90.2, the sending priority S2 of data page Q is 67.6, and the sending priority S3 of data page K is 45.3. According to the calculation result of the sending priority, the sending priority of data page J is the highest, followed by data page Q, and finally data page K. When the server sends the remaining whiteboard data to the terminal, the data pages can be sent to the terminal in the order of data page J, data page Q and data page K according to the size of the sending priority of the three data pages for incremental rendering.

[0162] Through the data processing method of steps 410 to 430, after receiving the first data acquisition request including the first whiteboard data range sent by the terminal for the whiteboard data of the collaborative whiteboard, the local whiteboard data in the whiteboard data according to the first whiteboard data range is first acquired and sent to the terminal for rendering display. Since the local whiteboard data within the first whiteboard data range is first sent to the terminal for rendering display, when opening the collaborative whiteboard, the user does not need to wait for all the whiteboard data of the collaborative whiteboard to be loaded, so even if there are many data elements in the collaborative whiteboard, the time consumption for opening the collaborative whiteboard can be greatly shortened, the speed for opening the collaborative whiteboard is improved, and the user can start to view and edit the content of the collaborative whiteboard more quickly, thereby improving the use efficiency and use experience of the user. In addition, when the terminal renders and displays the local whiteboard data, the terminal sends a second data acquisition request to the server, at this time, the server sends the remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request. Since the second data acquisition request is sent by the terminal when rendering and displaying the local whiteboard data, the process of the server sending the remaining whiteboard data to the terminal for incremental rendering according to the second data acquisition request will not affect the normal use of the user for the collaborative whiteboard. When the user needs to view or edit the remaining whiteboard data other than the local whiteboard data displayed by the terminal, since the terminal has already performed incremental rendering on the remaining whiteboard data, the remaining whiteboard data can be immediately displayed to the user without the user waiting for additional rendering time, thereby providing a more smooth use experience for the user.

[0163] The specific process of the data processing method of the collaborative whiteboard will be described below with a specific example.

[0164] Referring to Figure 13When the user is using or viewing the collaborative whiteboard, the terminal can preferentially load and render the partial whiteboard data. Taking the whiteboard homepage data as an example, the terminal can take the position coordinates of the whiteboard homepage, such as the upper left corner position coordinates and the lower right corner position coordinates of the whiteboard homepage, as the first whiteboard data position coordinates and the second whiteboard data position coordinates of the first whiteboard data range, and then send a first data acquisition request including the first whiteboard data range to the server. When the server receives and analyzes the first data acquisition request, the first whiteboard data position coordinates and the second whiteboard data position coordinates of the first whiteboard data range can be obtained, and then the horizontal axis coordinates and the vertical axis coordinates of the first whiteboard data range can be obtained according to the first whiteboard data position coordinates and the second whiteboard data position coordinates. After obtaining the first whiteboard data range (i.e., the whiteboard homepage data area), the server can pull the previously cached whiteboard data from the local cache. When the local cached whiteboard data is deleted due to expiration, the server can pull the related data from the database and construct the whiteboard data of the collaborative whiteboard, and update the local cached whiteboard data asynchronously according to the constructed whiteboard data. After obtaining the whiteboard data of the collaborative whiteboard, the server can first traverse the position information of all data elements, and for each data element, the intersection judgment result is expressed as a data element with intersection is determined as the partial whiteboard data (i.e., the whiteboard homepage data), and the intersection judgment result is expressed as a data element without intersection is discarded. When the server traverses the position information of all data elements, the partial whiteboard data can be returned to the terminal. After receiving the partial whiteboard data, the terminal can use JavaScript to dynamically load and render the partial whiteboard data, so that the user can quickly see the homepage data presentation. At the same time, the terminal sends a second data acquisition request for the remaining whiteboard data to the server, and the second data acquisition request includes the first whiteboard data range and a data pull mark. When the server receives the second data acquisition request and confirms the existence of the data pull mark, the complement range (i.e., the second whiteboard data range) of the first whiteboard data range can be obtained according to the data pull mark. At this time, the server can pull the remaining whiteboard data in the complement range from the local cache. Similarly, when the local cached remaining whiteboard data is deleted due to expiration, the server can pull the related data from the database and construct the remaining whiteboard data of the collaborative whiteboard, and update the local cached whiteboard data asynchronously according to the constructed remaining whiteboard data. After obtaining the remaining whiteboard data in the complement range, the server can send the remaining whiteboard data to the terminal for incremental rendering.

[0165] Referring to Figure 14 Figure 14 ​is a specific example of the overall flowchart of the data processing method of the collaborative whiteboard provided by the server, which can be executed by the terminal, or can be executed by the terminal and the server. In the embodiment of the application, the method is executed by the server as an example. In Figure 14 The data processing method can include but is not limited to steps 1401 to 1414.

[0166] Step 1401: receiving a first data acquisition request for whiteboard data of a collaborative whiteboard sent by a terminal, wherein the first data acquisition request includes a first whiteboard data range, and the first whiteboard data range includes a first whiteboard data position coordinate and a second whiteboard data position coordinate.

[0167] Step 1402: traversing the position information of all data elements in the whiteboard data.

[0168] Step 1403: determining a horizontal axis coordinate range according to the horizontal axis coordinate of the first whiteboard data position coordinate and the horizontal axis coordinate of the second whiteboard data position coordinate, and determining a vertical axis coordinate range according to the vertical axis coordinate of the first whiteboard data position coordinate and the vertical axis coordinate of the second whiteboard data position coordinate.

[0169] Step 1404: for each data element, judging whether the horizontal axis coordinate and the vertical axis coordinate of its position information are within the horizontal axis coordinate range and the vertical axis coordinate range, if the horizontal axis coordinate of the position information is within the horizontal axis coordinate range, and the vertical axis coordinate of the position information is within the vertical axis coordinate range, it is determined that the position information has an intersection with the first whiteboard data range.

[0170] Step 1405: in the whiteboard data, the intersection judgment result is expressed as a data element with intersection, which is determined as local whiteboard data, and the local whiteboard data is sent to the terminal for rendering display.

[0171] Step 1406: receiving a second data acquisition request sent by the terminal when rendering and displaying the local whiteboard data, wherein the second data acquisition request includes the first whiteboard data range and a data pull mark.

[0172] Step 1407: obtaining a second whiteboard data range according to the first whiteboard data range and the data pull mark, wherein the second whiteboard data range is the complement range of the first whiteboard data range.

[0173] Step 1408: obtaining the remaining whiteboard data in the whiteboard data according to the second whiteboard data range.

[0174] Step 1409: dividing the remaining whiteboard data into multiple data pages.

[0175] Step 1410: obtaining historical operation information for the collaborative whiteboard.

[0176] Step 1411: Obtain historical sub-operation information corresponding to each data page in the historical operation information, wherein the historical sub-operation information comprises a historical operation number and an operation time interval.

[0177] Step 1412: Set a first initial priority for each data page according to the historical operation number corresponding to each data page.

[0178] Step 1413: Correct the first initial priority of each data page according to the operation time interval corresponding to each data page to obtain a sending priority of each data page.

[0179] Step 1414: Send the plurality of data pages to the terminal for incremental rendering in order from high to low according to the sending priority.

[0180] Through the data processing method of the above steps 1401 to 1414, after receiving the first data acquisition request sent by the terminal for the whiteboard data of the collaborative whiteboard, the local whiteboard data in the whiteboard data according to the first whiteboard data range is obtained first, and the local whiteboard data is sent to the terminal for rendering display. Since the local whiteboard data within the first whiteboard data range is sent to the terminal for rendering display first, the user does not need to wait for all the whiteboard data of the collaborative whiteboard to be loaded when opening the collaborative whiteboard. Therefore, even if there are many data elements in the collaborative whiteboard, the time consumption for opening the collaborative whiteboard can be greatly shortened, the speed of opening the collaborative whiteboard is improved, and the user can start to view and edit the content of the collaborative whiteboard more quickly, thereby improving the user's use efficiency and use experience. In addition, when the terminal renders and displays the local whiteboard data, a second data acquisition request for obtaining the remaining whiteboard data in the whiteboard data is sent. At this time, the remaining whiteboard data in the whiteboard data can be sent to the terminal for incremental rendering according to the received second data acquisition request. Since the second data acquisition request is sent by the terminal when rendering and displaying the local whiteboard data, the process of sending the remaining whiteboard data to the terminal for incremental rendering according to the second data acquisition request will not affect the normal use of the collaborative whiteboard by the user. When the user needs to view or edit the remaining whiteboard data other than the local whiteboard data displayed by the terminal, the remaining whiteboard data can be displayed to the user immediately because the terminal has already performed incremental rendering on the remaining whiteboard data, without the user waiting for additional rendering time, thereby providing a more smooth use experience for the user.

[0181] It can be understood that, although each step in each of the above flowcharts is shown in sequence according to the indication of the arrow, these steps are not necessarily executed in the order indicated by the arrow. Unless otherwise specified in the present embodiment, the execution of these steps is not strictly limited in sequence, and these steps can be executed in other orders. Moreover, at least part of the steps in the above flowcharts can include multiple steps or multiple stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily sequential, but can be alternately executed with other steps or steps or stages in other steps.

[0182] With reference to Figure 15 The present embodiment further discloses a data processing apparatus of a collaborative whiteboard. The data processing apparatus 1500 can implement the data processing method of the collaborative whiteboard in the foregoing embodiments. The data processing apparatus 1500 comprises:

[0183] A request receiving unit 1510 configured to receive a first data acquisition request for whiteboard data of the collaborative whiteboard sent by a terminal, wherein the first data acquisition request comprises a first whiteboard data range;

[0184] A data sending unit 1520 configured to acquire partial whiteboard data from the whiteboard data according to the first whiteboard data range, and send the partial whiteboard data to the terminal for rendering display;

[0185] A data processing unit 1530 configured to receive a second data acquisition request sent by the terminal when the partial whiteboard data is rendered and displayed, and send remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request.

[0186] In an embodiment, the whiteboard data comprises a plurality of data elements; and the data sending unit 1520 is further configured to:

[0187] traverse position information of all data elements in the whiteboard data;

[0188] for each data element, perform intersection judgment on the position information and the first whiteboard data range to obtain an intersection judgment result of each data element;

[0189] in the whiteboard data, represent the intersection judgment result as data elements with intersection, and determine as the partial whiteboard data.

[0190] In an embodiment, the first whiteboard data range includes a first whiteboard data position coordinate and a second whiteboard data position coordinate, the first whiteboard data position coordinate and the second whiteboard data position coordinate being coordinates of two opposite vertices of a display area for displaying partial whiteboard data; the first whiteboard data position coordinate, the second whiteboard data position coordinate and the position information each include a horizontal axis coordinate and a vertical axis coordinate; and the data sending unit 1520 is further configured to:

[0191] determine a horizontal axis coordinate range according to the horizontal axis coordinate of the first whiteboard data position coordinate and the horizontal axis coordinate of the second whiteboard data position coordinate;

[0192] determine a vertical axis coordinate range according to the vertical axis coordinate of the first whiteboard data position coordinate and the vertical axis coordinate of the second whiteboard data position coordinate;

[0193] determine whether the horizontal axis coordinate and the vertical axis coordinate of the position information are within the horizontal axis coordinate range and the vertical axis coordinate range;

[0194] if the horizontal axis coordinate of the position information is within the horizontal axis coordinate range and the vertical axis coordinate of the position information is within the vertical axis coordinate range, determine that the position information intersects with the first whiteboard data range;

[0195] if the horizontal axis coordinate of the position information is outside the horizontal axis coordinate range or the vertical axis coordinate of the position information is outside the vertical axis coordinate range, determine that the position information does not intersect with the first whiteboard data range.

[0196] In an embodiment, the second data acquisition request includes the first whiteboard data range and a data re-pull mark, the data re-pull mark being used to indicate to acquire remaining whiteboard data; and the data processing unit 1530 is further configured to:

[0197] acquire a second whiteboard data range according to the first whiteboard data range and the data re-pull mark, the second whiteboard data range being a complement range of the first whiteboard data range;

[0198] acquire the remaining whiteboard data in the whiteboard data according to the second whiteboard data range;

[0199] send the remaining whiteboard data to the terminal for incremental rendering.

[0200] In an embodiment, the second data acquisition request includes a second whiteboard data range, the second whiteboard data range being a complement range of the first whiteboard data range; and the data processing unit 1530 is further configured to:

[0201] acquire the remaining whiteboard data in the whiteboard data according to the second whiteboard data range;

[0202] send the remaining whiteboard data to the terminal for incremental rendering.

[0203] In an embodiment, the data processing unit 1530 is further configured to:

[0204] divide the remaining whiteboard data into a plurality of data pages;

[0205] obtain a sending priority of each data page;

[0206] send the plurality of data pages to the terminal in an order from high to low of the sending priority for incremental rendering.

[0207] In an embodiment, the data processing unit 1530 is further configured to:

[0208] obtain historical operation information for the collaborative whiteboard;

[0209] obtain historical sub-operation information corresponding to each data page in the historical operation information;

[0210] determine the sending priority of each data page according to the historical sub-operation information corresponding to each data page.

[0211] In an embodiment, the historical sub-operation information includes a historical operation number and an operation time interval; the data processing unit 1530 is further configured to:

[0212] set a first initial priority for each data page according to the historical operation number corresponding to each data page;

[0213] correct the first initial priority of each data page according to the operation time interval corresponding to each data page to obtain the sending priority of each data page.

[0214] In an embodiment, the historical sub-operation information includes a historical operation duration and an operation time interval; the data processing unit 1530 is further configured to:

[0215] set a second initial priority for each data page according to the historical operation duration corresponding to each data page;

[0216] correct the second initial priority of each data page according to the operation time interval corresponding to each data page to obtain the sending priority of each data page.

[0217] In an embodiment, the historical sub-operation information includes a historical operation number and a historical operation duration; the data processing unit 1530 is further configured to:

[0218] set a third initial priority for each data page according to the historical operation number corresponding to each data page;

[0219] correct the third initial priority of each data page according to the historical operation duration corresponding to each data page to obtain the sending priority of each data page.

[0220] In an embodiment, the historical sub-operation information comprises a historical operation number, a historical operation duration and an operation time interval; the data processing unit 1530 is further configured to:

[0221] vectorize the historical operation number, the historical operation duration and the operation time interval corresponding to each data page to obtain a historical operation number vector, a historical operation duration vector and an operation time interval vector corresponding to each data page;

[0222] For each data page, the priority prediction model is called to perform priority prediction according to the historical operation number vector, the historical operation duration vector and the operation time interval vector to obtain a sending priority of each data page.

[0223] It should be noted that the data processing apparatus 1500 of the present embodiment can implement the data processing method of the collaborative whiteboard as in the foregoing embodiments, and therefore the data processing apparatus 1500 of the present embodiment and the data processing method of the collaborative whiteboard in the foregoing embodiments have the same technical principles and the same beneficial effects. To avoid repetition of content, no further description is given here.

[0224] With reference to Figure 16 the present embodiment further discloses an electronic device, which comprises:

[0225] at least one processor 1601;

[0226] at least one memory 1602 configured to store at least one program;

[0227] When the at least one program is executed by the at least one processor 1601, the data processing method of the collaborative whiteboard as in the foregoing embodiments is implemented.

[0228] The present embodiment further discloses a computer readable storage medium, wherein a computer program executable by a processor is stored, and the computer program executable by the processor is executed by the processor to implement the data processing method of the collaborative whiteboard as in the foregoing embodiments.

[0229] The present embodiment further discloses a computer program product comprising a computer program or computer instructions, wherein the computer program or computer instructions are stored in a computer readable storage medium, and the processor of the electronic device reads the computer program or computer instructions from the computer readable storage medium, and the processor executes the computer program or computer instructions to make the electronic device execute the data processing method of the collaborative whiteboard as in the foregoing embodiments.

[0230] The terms "first", "second", "third", "fourth" and the like in the description of this application and in the claims, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the use of these terms herein is to be construed to cover the embodiments of this application, unless otherwise expressly specified and conditioned. Furthermore, the terms "comprise", "have" and "include" and their conjugates, when used in this application, specify the presence of stated features, elements, steps or components but do not preclude the presence or addition of one or more other features, elements, steps, components or groups thereof. It is further understood that the use of relational terms, if any, such as first, second, third, fourth and the like, are used solely to distinguish one from another entity or action without necessarily giving rise to a sequential or chronological order.

[0231] It should be understood that, in this application, "at least one" means one or more, "multiple" means two or more. "And / or", used to describe the relationship between associated objects, means that there can be three relationships, for example, "A and / or B" can mean: only A, only B, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects. "At least one of the following" or the like means any combination of these items, including single or multiple combinations of items. For example, at least one of a, b or c, can mean: 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 singular or plural.

[0232] In several embodiments provided in this application, it should be understood that the disclosed system, device and method can be implemented in other ways. For example, the above-described device embodiments are only illustrative, for example, the division of the units is only a logical function division, and actual implementation can have another division manner, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the displayed or discussed each other can be indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0233] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with a predetermined function, and works together with other related parts to achieve a predetermined target, and can be implemented entirely or partially by using software, hardware (such as a processing circuit or a memory) or a combination thereof. Similarly, one processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be a part of an integral module or unit that includes the functions of the module or unit.

[0234] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e., they can be located in one place, or they can be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0235] In addition, the functional units in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software functional unit.

[0236] The integrated unit, if implemented in the form of a software functional unit and sold or used as an independent product, can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or the whole or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, and includes a number of instructions for causing a computer device (which can be a personal computer, a server or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0237] For the step numbers in the above method embodiments, only the order between the steps is not limited, and the execution order of each step in the embodiments can be adaptively adjusted according to the understanding of those skilled in the art.

Claims

1. A data processing method of a collaboration whiteboard, characterized by, The method comprises the following steps: receiving a first data acquisition request for whiteboard data of a collaborative whiteboard sent by a terminal, wherein the first data acquisition request comprises a first whiteboard data range; acquiring partial whiteboard data in the whiteboard data according to the first whiteboard data range, and sending the partial whiteboard data to the terminal for rendering display; receiving a second data acquisition request sent by the terminal when the partial whiteboard data is rendered and displayed, and sending remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request.

2. The method of claim 1, wherein, The whiteboard data comprises a plurality of data elements; the acquiring of the partial whiteboard data in the whiteboard data according to the first whiteboard data range comprises: traversing position information of all the data elements in the whiteboard data; for each data element, performing intersection judgment on the position information and the first whiteboard data range to obtain an intersection judgment result of each data element; in the whiteboard data, the intersection judgment result is represented as the data elements with intersection, and is determined as the partial whiteboard data.

3. The method of claim 2, wherein, The first whiteboard data range comprises a first whiteboard data position coordinate and a second whiteboard data position coordinate, the first whiteboard data position coordinate and the second whiteboard data position coordinate are coordinates of two opposite vertices of a display area for displaying the partial whiteboard data; the first whiteboard data position coordinate, the second whiteboard data position coordinate and the position information each comprise a horizontal axis coordinate and a vertical axis coordinate; the process of performing intersection judgment on the position information and the first whiteboard data range comprises the following steps: determining a horizontal axis coordinate range according to the horizontal axis coordinate of the first whiteboard data position coordinate and the horizontal axis coordinate of the second whiteboard data position coordinate; determining a vertical axis coordinate range according to the vertical axis coordinate of the first whiteboard data position coordinate and the vertical axis coordinate of the second whiteboard data position coordinate; judging whether the horizontal axis coordinate and the vertical axis coordinate of the position information are within the horizontal axis coordinate range and the vertical axis coordinate range; if the horizontal axis coordinate of the position information is within the horizontal axis coordinate range, and the vertical axis coordinate of the position information is within the vertical axis coordinate range, it is determined that the position information has intersection with the first whiteboard data range; if the horizontal axis coordinate of the position information is outside the horizontal axis coordinate range, or the vertical axis coordinate of the position information is outside the vertical axis coordinate range, it is determined that the position information has no intersection with the first whiteboard data range.

4. The method of claim 1, wherein, The second data acquisition request comprises the first whiteboard data range and a data pull mark, the data pull mark is used for indicating the acquisition of the remaining whiteboard data; the sending of the remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request comprises: acquiring a second whiteboard data range according to the first whiteboard data range and the data pull mark, the second whiteboard data range is a complementary range of the first whiteboard data range; According to the second whiteboard data range, the remaining whiteboard data is obtained from the whiteboard data; The remaining whiteboard data is sent to the terminal for incremental rendering.

5. The method of claim 1, wherein, The second data acquisition request includes a second whiteboard data range, and the second whiteboard data range is a complement range of the first whiteboard data range; According to the second data acquisition request, the remaining whiteboard data in the whiteboard data is sent to the terminal for incremental rendering, including: According to the second whiteboard data range, the remaining whiteboard data is obtained from the whiteboard data; The remaining whiteboard data is sent to the terminal for incremental rendering.

6. The method according to claim 4 or 5, characterized in that, The remaining whiteboard data is sent to the terminal for incremental rendering, including: The remaining whiteboard data is divided into multiple data pages; The sending priority of each data page is obtained; According to the order from high to low of the sending priority, multiple data pages are sent to the terminal for incremental rendering.

7. The method of claim 6, wherein, The sending priority of each data page is obtained, including: The historical operation information of the collaborative whiteboard is obtained; The historical sub-operation information corresponding to each data page is obtained from the historical operation information; According to the historical sub-operation information corresponding to each data page, the sending priority of each data page is determined.

8. The method of claim 7, wherein, The historical sub-operation information includes historical operation times and operation time intervals; according to the sub-operation information corresponding to each data page, the sending priority of each data page is determined, including: According to the historical operation times corresponding to each data page, a first initial priority is set for each data page; According to the operation time intervals corresponding to each data page, the first initial priority of each data page is corrected to obtain the sending priority of each data page.

9. The method of claim 7, wherein, The historical sub-operation information includes historical operation times and operation time intervals; according to the sub-operation information corresponding to each data page, the sending priority of each data page is determined, including: According to the historical operation times corresponding to each data page, a first initial priority is set for each data page; According to the operation time intervals corresponding to each data page, the first initial priority of each data page is corrected to obtain the sending priority of each data page.

10. The method of claim 7, wherein, The historical sub-operation information includes historical operation times and historical operation times; according to the sub-operation information corresponding to each data page, the sending priority of each data page is determined, including: According to the historical operation times corresponding to each data page, a first initial priority is set for each data page; According to the historical operation times corresponding to each data page, a first initial priority is set for each data page; According to the historical operation times corresponding to each data page, a first initial priority is set for each data page; 11. The method of claim 7, wherein, The historical sub-operation information includes a historical operation number, a historical operation duration and an operation time interval; and the determining of the sending priority of each data page according to the sub-operation information corresponding to each data page comprises: vectorizing the historical operation number, the historical operation duration and the operation time interval corresponding to each data page to obtain a historical operation number vector, a historical operation duration vector and an operation time interval vector corresponding to each data page; for each data page, calling a priority prediction model to perform priority prediction according to the historical operation number vector, the historical operation duration vector and the operation time interval vector to obtain the sending priority of each data page.

12. A data processing apparatus of a collaboration whiteboard, characterized by, comprise: a request receiving unit, configured to receive a first data acquisition request for whiteboard data of a collaborative whiteboard sent by a terminal, wherein the first data acquisition request comprises a first whiteboard data range; a data sending unit, configured to acquire local whiteboard data in the whiteboard data according to the first whiteboard data range, and send the local whiteboard data to the terminal for rendering display; a data processing unit, configured to receive a second data acquisition request sent by the terminal when the terminal receives the local whiteboard data, and send remaining whiteboard data in the whiteboard data to the terminal for incremental rendering according to the second data acquisition request.

13. An electronic device, comprising: comprise: at least one processor; at least one memory configured to store at least one program; when at least one program is executed by at least one processor, the data processing method of the collaborative whiteboard in any one of claims 1 to 11 is implemented.

14. A computer-readable storage medium, characterized in that, wherein the processor executable computer program is stored in the computer readable storage medium, and the processor of the electronic device reads the computer program or the computer instruction from the computer readable storage medium, and the processor executes the computer program or the computer instruction, so that the electronic device executes the data processing method of the collaborative whiteboard in any one of claims 1 to 11.

15. A computer program product comprising computer programs or computer instructions, characterized in that, the computer program or the computer instruction is stored in a computer readable storage medium, and the processor of the electronic device reads the computer program or the computer instruction from the computer readable storage medium, and the processor executes the computer program or the computer instruction, so that the electronic device executes the data processing method of the collaborative whiteboard in any one of claims 1 to 11.