US20100017702A1 - Asynchronous Partial Page Updates Based On Dynamic Dependency Calculation - Google Patents

Asynchronous Partial Page Updates Based On Dynamic Dependency Calculation Download PDF

Info

Publication number
US20100017702A1
US20100017702A1 US12/174,353 US17435308A US2010017702A1 US 20100017702 A1 US20100017702 A1 US 20100017702A1 US 17435308 A US17435308 A US 17435308A US 2010017702 A1 US2010017702 A1 US 2010017702A1
Authority
US
United States
Prior art keywords
computer
objects
web page
displayed
dependency graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/174,353
Inventor
Paul Lloyd Hawes Carroll
Samar Choudhary
Richard Adam King
Shikha Srivastava
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US12/174,353 priority Critical patent/US20100017702A1/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CARROLL, PAUL LLOYD HAWES, CHOUDHARY, SAMAR, KING, RICHARD ADAM, SRIVASTAVA, SHIKHA
Publication of US20100017702A1 publication Critical patent/US20100017702A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Definitions

  • the present invention relates, in general, to computing systems in a distributed data processing environment.
  • the present invention is a system and method for updating objects displayed on a web page or across multiple web pages of a web portal by dynamically computing a dependency graph.
  • a mashup is a web application that assembles application elements and data from more than one source into a single integrated view.
  • a consumer mashup combines user interface and data elements from multiple sources, hiding this behind a simple graphical user interface.
  • a data mashup mixes data of similar types from different sources.
  • An enterprise mashup integrates user interface and data elements from internal and external sources.
  • a business mashup combines a consumer mashup and data mashup to create a business application user interface that focuses on data aggregation and presentation, and adding collaborative functionality.
  • a user interacting with an application element in a mashup can affect other application elements in the mashup. For example, if the user selects a resource in one application element, the other application elements that display information about that resource may change. Similarly, when the user changes a display setting in an application element from graphical to tabular, the change may propagate to other application elements in the mashup.
  • prior art solutions rendered everything on the web page for every request, employed frames and Iframes to isolate the content by embedding another HTML document in a main document, or used Asynchronous JavaScript and XML (Ajax) programming to update individual page portions.
  • These prior art solutions either do not allow for select fragments to be updated on the same or different web page by calculating dynamic relationships, are time and resource intensive, or fall short in user experience.
  • a typical mashup application integrates independently developed application elements without the ability to determine how the application elements affect one another.
  • To avoid the need to render the entire display each time an application element changes there is a demand for a system and method for asynchronously updating a web page or other web pages displayed on a computer when an action by a user changes an object displayed on the web page. The presently disclosed method and system satisfies this demand.
  • a system and method for asynchronously updating a web page or web pages displayed on a computer receives from the computer an event message that is generated as a response to an action by a user to change an object displayed on the web page.
  • the method creates a dependency graph having a root node, and child nodes that depend upon the root node, and adds the object that generated the event message, or a reference to the object, to the dependency graph as the root node.
  • the child nodes may add other child nodes.
  • the method calculates the dynamic dependency graph between objects on the web page or web pages and receives context information for the other objects.
  • the method traverses the dependency graph and sends update requests to the web page or web pages displayed on the computer, wherein the update requests are sent to the object associated with the root node, and the other objects associated with the child nodes.
  • the web page is a web portal page displayed on a client computer
  • the objects displayed on the web portal page are portlets.
  • the action by the user to change one of the portlets may be a user interaction with a component displayed on the portlet.
  • the action generates a processAction method call that is sent from the client computer to a web portal server on a server computer.
  • the web portal server handles the processAction method call, and creates a dependency graph for the portlet that generated the processAction method call.
  • a portlet container for the web portal server receives any context information communicated to other portlets on the portal page or any other page that depend, either directly or indirectly, upon the portlet that changed.
  • the web portal server traverses the dependency graph and sends a renderRequest method call to each portlet in the portal page that is associated with a node in the dependency graph.
  • FIG. 1 is a network diagram that illustrates the hardware components comprising one embodiment of a system that performs the present invention.
  • FIG. 2 is a block diagram that illustrates one embodiment of the system components shown in FIG. 1 .
  • FIG. 3 is a block diagram that illustrates one embodiment of a web portal page displayed on the client computer 120 shown in FIG. 2 .
  • FIG. 4 is a diagram that illustrates one embodiment of a dependency graph for the web portal page shown in FIG. 3 .
  • FIG. 5 is a flow chart that illustrates one embodiment of the method for asynchronously updating a web page displayed on a computer.
  • the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
  • the computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device.
  • a computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
  • a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
  • the computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave.
  • the computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
  • Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, GTE, etc.
  • These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • FIG. 1 is a network diagram that illustrates the hardware components comprising one embodiment of a system that performs the present invention.
  • the architecture shown in FIG. 1 utilizes a network 100 to connect a number of client computers 110 to a single server computer 120 that performs the method of the present invention.
  • the server computer 120 distributes the processing that it performs among a number of server computers.
  • the server computer 120 distributes the processing that it performs among a combination of a server computer and a number of general-purpose computers.
  • the server computer 120 distributes the processing that it performs among the client computers 110 and the server computer 120 .
  • the network 100 shown in FIG. 1 is a public communication network that connects and enables data transfer between the client computers 110 and the server computer 120 .
  • the present invention also contemplates the use of comparable network architectures.
  • Comparable network architectures include the Public Switched Telephone Network (PSTN), a public packet-switched network carrying data and voice packets, a wireless network, and a private network.
  • PSTN Public Switched Telephone Network
  • a wireless network includes a cellular network (e.g., a Time Division Multiple Access (TDMA) or Code Division Multiple Access (CDMA) network), a satellite network, and a wireless Local Area Network (LAN) (e.g., a wireless fidelity (Wi-Fi) network).
  • TDMA Time Division Multiple Access
  • CDMA Code Division Multiple Access
  • LAN wireless Local Area Network
  • a private network includes a LAN, a Personal Area Network (PAN) such as a Bluetooth network, a wireless LAN, a Virtual Private Network (VPN), an intranet, or an extranet.
  • An intranet is a private communication network that provides an organization such as a corporation, with a secure means for trusted members of the organization to access the resources on the organization's network.
  • an extranet is a private communication network that provides an organization, such as a corporation, with a secure means for the organization to authorize non-members of the organization to access certain resources on the organization's network.
  • the system also contemplates network architectures and protocols such as Ethernet, Token Ring, Systems Network Architecture, Internet Protocol, Transmission Control Protocol, User Datagram Protocol, Asynchronous Transfer Mode, and proprietary network protocols comparable to the Internet Protocol.
  • FIG. 2 is a block diagram that illustrates one embodiment of the system components shown in FIG. 1 .
  • FIG. 2 illustrates, in greater detail, the hardware and software components that comprise the server computer 120 and the client computer 110 .
  • the client computer 110 is a general-purpose computer.
  • a bus 200 is a communication medium that connects a central processor unit (CPU) 205 , data storage device 210 , network adapter 215 , and memory 220 .
  • the network adapter 215 also connects to the network 100 and is the mechanism that facilitates the passage of network traffic between the client computer 110 and the network 100 .
  • the CPU 205 can be a commercially available or custom microprocessor that performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 220 .
  • the memory 220 may include operating system, administrative, and database programs that support the programs disclosed in this application.
  • the memory 220 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the client computer 110 .
  • the memory 220 can include, but is not limited to, cache, ROM, PROM, EPROM, EEPROM, flash memory, SRAM, and DRAM.
  • the configuration of the memory 220 of the client computer 110 includes a web browser 225 , and a client identifier 230 .
  • These computer programs store intermediate results in the memory 220 , or data storage device 210 .
  • the memory 220 may swap these programs, or portions thereof, in and out of the memory 220 as needed, and thus may include fewer than all of these programs at any one time.
  • the client identifier 230 is stored in a file referred to as a cookie.
  • the server computer 120 may assign and send the client identifier 230 to the client computer 110 once when the client computer 110 first communicates with the server computer 120 . From then on, the client computer 110 includes its client identifier 230 with all messages sent to the server computer 120 so the server computer 120 can identify the source of the message.
  • the server computer 120 shown in FIG. 2 is a general-purpose computer that provides server functionality including file services, web page services, and the like.
  • a bus 250 is a communication medium that connects a central processor unit (CPU) 255 , data storage device 260 , network adapter 265 , and memory 270 .
  • the network adapter 265 also connects to the network 100 and is the mechanism that facilitates the passage of network traffic between the server computer 120 and the network 100 .
  • the CPU 255 can be a commercially available or custom microprocessor that performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 270 .
  • the memory 270 may include operating system, administrative, and database programs that support the programs disclosed in this application.
  • the memory 270 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the server computer 120 .
  • the memory 270 can include, but is not limited to, cache, ROM, PROM, EPROM, EEPROM, flash memory, SRAM, and DRAM.
  • the configuration of the memory 270 of the server computer 120 includes a web portal server 275 that includes a dependency graph program 280 , portlet container 285 , portlets 290 , and portal pages 295 .
  • These computer programs store intermediate results in the memory 270 , or data storage device 260 .
  • These programs also receive input from the client computers 110 , and display the results to the client computers 110 .
  • the memory 270 may swap these programs, or portions thereof, in and out of the memory 270 as needed, and thus may include fewer than all of these programs at any one time.
  • the web portal server 275 in one embodiment, is a web application deployed in an application server that uses a servlet for handling requests to the web portal server 275 .
  • the web portal server 275 receives requests, such as portal events, and hypertext transfer protocol (HTTP) requests, from the client computers 110 to access the portal pages 295 , which are identified by uniform resource locator (URL) addresses, and provides the portal pages 295 in response.
  • the web portal server 275 also communicates the requests from the client computers 110 to the portlet container 285 .
  • the portlet container 285 controls the access, lifetime, and interaction of the portlets 290 and provides the content returned from a portlet back to the web portal server 275 for merging with the content of other portlets 290 .
  • the portlet container 285 then invokes the portlets 290 , small Java program that runs within the portlet container 285 , to receive and respond to the requests from the portlet container 285 .
  • the web portal server 275 invokes the dependency graph program 280 .
  • FIG. 3 is a block diagram that illustrates one embodiment of a portal page displayed on the client computer 110 shown in FIG. 2 .
  • Portal page 300 shown in FIG. 3 is supplied by the web portal server 275 shown in FIG. 2 and displayed to a user of client computer 110 .
  • the portal page 300 shown in FIG. 3 is partitioned into six panels, portlet A, portlet B, portlet C, portlet D, portlet E, and portlet F. In other embodiments, the number and configuration of the panels (i.e., portlets) may vary.
  • Each portlet shown in FIG. 3 displays data and content (not shown) provided by the web portal server 275 .
  • Each portlet may further include panel components.
  • portlet B includes a resource selector 310 component.
  • a user may operate the resource selector 310 component to select one resource from a list of resources that the user may associate with portlet B.
  • the portlet sends a request or event, such as a processAction method call, to the web portal server 275 .
  • the web portal server 275 invokes the dependency graph program 280 to construct a dynamic dependency graph based on the requesting portlet, portlet B, and the other portlets displayed on the portal page 300 that depend, either directly or indirectly, upon the resource selected by the resource selector 310 component to display data or content associated with the selected resource.
  • the web portal server 275 uses the computed dependency graph to send requests to the client computer 110 to update the display only for those portlets affected by the change in the resource selector 310 component.
  • FIG. 4 is a diagram that illustrates one embodiment of a dependency graph for the web portal page shown in FIG. 3 .
  • the dependency graph 400 shown in FIG. 4 illustrates that portlet B, after receiving a processAction method call, communicated context information to portlet D and portlet E to send notification of the change in the resource selector 310 component.
  • the dependency graph 400 also illustrates that portlet E also communicated context information to portlet F to send notification of the change in the resource selector 310 component.
  • the web portal server 275 will send requests, such as a renderRequest, to update the display only for portlet B, portlet D, portlet E, and portlet F. Consequently, the web portal server 275 will not send a request to update the display of the other portlets on portal page 300 , portlet A, and portlet C, because the change to the selected resource did not affect the display of the other portlets.
  • FIG. 5 is a flow chart that illustrates one embodiment of the method for asynchronously updating a web page displayed on a computer.
  • the method shown in FIG. 5 begins with the display of one of the portal pages 295 in the web browser 225 of the client computer 110 (step 505 ).
  • a user operates the client computer 110 to request a change to one of the objects displayed on the portal page 295 (step 510 ).
  • the objects displayed on the portal page 295 may include application elements, applets, servlets, portlets 290 , or the like.
  • the client computer 110 generates an event message in response to the request to change one of the objects displayed on the portal page 295 , and sends the event message to the server computer 120 (step 515 ).
  • the event message may include a processAction method call, or the like.
  • the server computer 120 receives the event message (step 520 ) from the client computer 110 and creates a dependency graph (step 525 ).
  • the dependency graph is a directed acyclic graph that includes a root node and child nodes that represent a dependency relation to the root node.
  • the server computer 120 adds the object on the portal page 295 that the user changed as the root node for the dependency graph (step 530 ).
  • the dependency graph stores a reference to the object, rather than the object.
  • the portlet container 285 receives context information from other objects displayed on the portal page 295 that will change as a result of the change to the object that the user changed (step 535 ).
  • the server computer 120 adds these other objects on the portal page 295 to the dependency graph as child nodes (step 540 ).
  • the dependency graph stores a reference to the other objects, rather than the other objects.
  • the server computer 120 traverses the dependency graph and sends update requests to the portal page 295 for each objects on the portal page 295 associated with a node in the dependency graph (step 545 ).
  • the update request may include a renderRequest method call, or the like.
  • the client computer 110 receives the update requests and renders the object on the portal page 295 associated with each update request (step 550 ).
  • the method illustrated in FIG. 5 computes the dependency graph for those objects on the portal page 295 that need to be updated to process the request from the user to change the object.
  • One of ordinary skill in the art will understand that the method illustrated in FIG. 5 allows the server computer 120 to compute the dependency graph dynamically, thereby computing a separate dependency graph for each user interaction with the portal page 295 .
  • computing the dependency graph dynamically with each user interaction allows only the rendering that is necessary to take place, and accommodates unknowable application behaviors, such as adding or removing an object on the portal page 295 .
  • the computed dependency graph is a structure for determining which objects in the portal page 295 will be rendered for a given user interaction with the portal page 295 .
  • the dependency graph provides automated updates of dependent page fragments without any user intervention and the ability to deliver context to only related user interface elements.
  • the fragments of the portal page 295 may be provided by different web applications.
  • the method of FIG. 5 provides better useability of the portal page 295 , reduced latency on response time as the unwanted fragments are left in-place, reduces the bandwidth needed to render the display, the ability to load all the dependent fragments in one asynchronous call, keeps fragments that don't change in cache, and avoids page flicker.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Abstract

A system and method for asynchronously updating a web page or web pages displayed on a computer. The method receives from the computer an event message that is generated as a response to an action by a user to change an object displayed on the web page. The method creates a dynamic dependency graph having a root node, and child nodes that depend upon the root node, and adds the object that generated the event message, or a reference to the object, to the dependency graph as the root node. In addition, the child nodes may add other child nodes. The method receives context information for other objects displayed on the web page, when a dependency exists between the object and the other objects. The method adds the other objects, or references to the other objects, to the dependency graph as the child nodes. The method traverses the dependency graph and sends update requests to the web page or web pages displayed on the computer, wherein the update requests are sent to the object associated with the root node, and the other objects associated with the child nodes.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates, in general, to computing systems in a distributed data processing environment. In particular, the present invention is a system and method for updating objects displayed on a web page or across multiple web pages of a web portal by dynamically computing a dependency graph.
  • 2. Description of the Related Art
  • A mashup is a web application that assembles application elements and data from more than one source into a single integrated view. A consumer mashup combines user interface and data elements from multiple sources, hiding this behind a simple graphical user interface. A data mashup mixes data of similar types from different sources. An enterprise mashup integrates user interface and data elements from internal and external sources. A business mashup combines a consumer mashup and data mashup to create a business application user interface that focuses on data aggregation and presentation, and adding collaborative functionality.
  • A user interacting with an application element in a mashup can affect other application elements in the mashup. For example, if the user selects a resource in one application element, the other application elements that display information about that resource may change. Similarly, when the user changes a display setting in an application element from graphical to tabular, the change may propagate to other application elements in the mashup.
  • To provide the experience of a locally installed application for the user of a late bound assembled web application, prior art solutions rendered everything on the web page for every request, employed frames and Iframes to isolate the content by embedding another HTML document in a main document, or used Asynchronous JavaScript and XML (Ajax) programming to update individual page portions. These prior art solutions either do not allow for select fragments to be updated on the same or different web page by calculating dynamic relationships, are time and resource intensive, or fall short in user experience.
  • Due to the increased prevalence of mashup applications, there is a need for new solutions for the unplanned interoperation of application elements. A typical mashup application integrates independently developed application elements without the ability to determine how the application elements affect one another. To avoid the need to render the entire display each time an application element changes, there is a demand for a system and method for asynchronously updating a web page or other web pages displayed on a computer when an action by a user changes an object displayed on the web page. The presently disclosed method and system satisfies this demand.
  • SUMMARY OF THE INVENTION
  • A system and method for asynchronously updating a web page or web pages displayed on a computer. The method receives from the computer an event message that is generated as a response to an action by a user to change an object displayed on the web page. The method creates a dependency graph having a root node, and child nodes that depend upon the root node, and adds the object that generated the event message, or a reference to the object, to the dependency graph as the root node. In addition, the child nodes may add other child nodes. The method calculates the dynamic dependency graph between objects on the web page or web pages and receives context information for the other objects. The method traverses the dependency graph and sends update requests to the web page or web pages displayed on the computer, wherein the update requests are sent to the object associated with the root node, and the other objects associated with the child nodes.
  • In one embodiment, the web page is a web portal page displayed on a client computer, and the objects displayed on the web portal page are portlets. The action by the user to change one of the portlets may be a user interaction with a component displayed on the portlet. The action generates a processAction method call that is sent from the client computer to a web portal server on a server computer. The web portal server handles the processAction method call, and creates a dependency graph for the portlet that generated the processAction method call. A portlet container for the web portal server receives any context information communicated to other portlets on the portal page or any other page that depend, either directly or indirectly, upon the portlet that changed. The web portal server traverses the dependency graph and sends a renderRequest method call to each portlet in the portal page that is associated with a node in the dependency graph.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a network diagram that illustrates the hardware components comprising one embodiment of a system that performs the present invention.
  • FIG. 2 is a block diagram that illustrates one embodiment of the system components shown in FIG. 1.
  • FIG. 3 is a block diagram that illustrates one embodiment of a web portal page displayed on the client computer 120 shown in FIG. 2.
  • FIG. 4 is a diagram that illustrates one embodiment of a dependency graph for the web portal page shown in FIG. 3.
  • FIG. 5 is a flow chart that illustrates one embodiment of the method for asynchronously updating a web page displayed on a computer.
  • DETAILED DESCRIPTION OF THE INVENTION
  • As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
  • Any combination of one or more computer usable or computer readable mediums may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
  • Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
  • The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • FIG. 1 is a network diagram that illustrates the hardware components comprising one embodiment of a system that performs the present invention. The architecture shown in FIG. 1 utilizes a network 100 to connect a number of client computers 110 to a single server computer 120 that performs the method of the present invention. In another embodiment, the server computer 120 distributes the processing that it performs among a number of server computers. In yet another embodiment, the server computer 120 distributes the processing that it performs among a combination of a server computer and a number of general-purpose computers. In yet another embodiment, the server computer 120 distributes the processing that it performs among the client computers 110 and the server computer 120.
  • The network 100 shown in FIG. 1, in one embodiment, is a public communication network that connects and enables data transfer between the client computers 110 and the server computer 120. The present invention also contemplates the use of comparable network architectures. Comparable network architectures include the Public Switched Telephone Network (PSTN), a public packet-switched network carrying data and voice packets, a wireless network, and a private network. A wireless network includes a cellular network (e.g., a Time Division Multiple Access (TDMA) or Code Division Multiple Access (CDMA) network), a satellite network, and a wireless Local Area Network (LAN) (e.g., a wireless fidelity (Wi-Fi) network). A private network includes a LAN, a Personal Area Network (PAN) such as a Bluetooth network, a wireless LAN, a Virtual Private Network (VPN), an intranet, or an extranet. An intranet is a private communication network that provides an organization such as a corporation, with a secure means for trusted members of the organization to access the resources on the organization's network. In contrast, an extranet is a private communication network that provides an organization, such as a corporation, with a secure means for the organization to authorize non-members of the organization to access certain resources on the organization's network. The system also contemplates network architectures and protocols such as Ethernet, Token Ring, Systems Network Architecture, Internet Protocol, Transmission Control Protocol, User Datagram Protocol, Asynchronous Transfer Mode, and proprietary network protocols comparable to the Internet Protocol.
  • FIG. 2 is a block diagram that illustrates one embodiment of the system components shown in FIG. 1. In particular, FIG. 2 illustrates, in greater detail, the hardware and software components that comprise the server computer 120 and the client computer 110.
  • As shown in FIG. 2, the client computer 110 is a general-purpose computer. A bus 200 is a communication medium that connects a central processor unit (CPU) 205, data storage device 210, network adapter 215, and memory 220. The network adapter 215 also connects to the network 100 and is the mechanism that facilitates the passage of network traffic between the client computer 110 and the network 100.
  • The CPU 205 can be a commercially available or custom microprocessor that performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 220. It is to be understood that the memory 220 may include operating system, administrative, and database programs that support the programs disclosed in this application. The memory 220 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the client computer 110. The memory 220 can include, but is not limited to, cache, ROM, PROM, EPROM, EEPROM, flash memory, SRAM, and DRAM. In one embodiment, the configuration of the memory 220 of the client computer 110 includes a web browser 225, and a client identifier 230. These computer programs store intermediate results in the memory 220, or data storage device 210. In another embodiment, the memory 220 may swap these programs, or portions thereof, in and out of the memory 220 as needed, and thus may include fewer than all of these programs at any one time.
  • In one embodiment, the client identifier 230 is stored in a file referred to as a cookie. The server computer 120 may assign and send the client identifier 230 to the client computer 110 once when the client computer 110 first communicates with the server computer 120. From then on, the client computer 110 includes its client identifier 230 with all messages sent to the server computer 120 so the server computer 120 can identify the source of the message.
  • The server computer 120 shown in FIG. 2 is a general-purpose computer that provides server functionality including file services, web page services, and the like. A bus 250 is a communication medium that connects a central processor unit (CPU) 255, data storage device 260, network adapter 265, and memory 270. The network adapter 265 also connects to the network 100 and is the mechanism that facilitates the passage of network traffic between the server computer 120 and the network 100.
  • The CPU 255 can be a commercially available or custom microprocessor that performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 270. It is to be understood that the memory 270 may include operating system, administrative, and database programs that support the programs disclosed in this application. The memory 270 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the server computer 120. The memory 270 can include, but is not limited to, cache, ROM, PROM, EPROM, EEPROM, flash memory, SRAM, and DRAM. In one embodiment, the configuration of the memory 270 of the server computer 120 includes a web portal server 275 that includes a dependency graph program 280, portlet container 285, portlets 290, and portal pages 295. These computer programs store intermediate results in the memory 270, or data storage device 260. These programs also receive input from the client computers 110, and display the results to the client computers 110. In another embodiment, the memory 270 may swap these programs, or portions thereof, in and out of the memory 270 as needed, and thus may include fewer than all of these programs at any one time.
  • The web portal server 275, in one embodiment, is a web application deployed in an application server that uses a servlet for handling requests to the web portal server 275. The web portal server 275 receives requests, such as portal events, and hypertext transfer protocol (HTTP) requests, from the client computers 110 to access the portal pages 295, which are identified by uniform resource locator (URL) addresses, and provides the portal pages 295 in response. The web portal server 275 also communicates the requests from the client computers 110 to the portlet container 285. The portlet container 285 controls the access, lifetime, and interaction of the portlets 290 and provides the content returned from a portlet back to the web portal server 275 for merging with the content of other portlets 290. The portlet container 285 then invokes the portlets 290, small Java program that runs within the portlet container 285, to receive and respond to the requests from the portlet container 285. For certain types of events, the web portal server 275 invokes the dependency graph program 280.
  • FIG. 3 is a block diagram that illustrates one embodiment of a portal page displayed on the client computer 110 shown in FIG. 2. Portal page 300 shown in FIG. 3 is supplied by the web portal server 275 shown in FIG. 2 and displayed to a user of client computer 110. The portal page 300 shown in FIG. 3 is partitioned into six panels, portlet A, portlet B, portlet C, portlet D, portlet E, and portlet F. In other embodiments, the number and configuration of the panels (i.e., portlets) may vary. Each portlet shown in FIG. 3 displays data and content (not shown) provided by the web portal server 275. Each portlet may further include panel components. In the embodiment shown in FIG. 3, portlet B includes a resource selector 310 component. A user may operate the resource selector 310 component to select one resource from a list of resources that the user may associate with portlet B. When the resource associated with portlet B changes, the portlet sends a request or event, such as a processAction method call, to the web portal server 275. The web portal server 275 invokes the dependency graph program 280 to construct a dynamic dependency graph based on the requesting portlet, portlet B, and the other portlets displayed on the portal page 300 that depend, either directly or indirectly, upon the resource selected by the resource selector 310 component to display data or content associated with the selected resource. The web portal server 275 then uses the computed dependency graph to send requests to the client computer 110 to update the display only for those portlets affected by the change in the resource selector 310 component.
  • FIG. 4 is a diagram that illustrates one embodiment of a dependency graph for the web portal page shown in FIG. 3. The dependency graph 400 shown in FIG. 4 illustrates that portlet B, after receiving a processAction method call, communicated context information to portlet D and portlet E to send notification of the change in the resource selector 310 component. The dependency graph 400 also illustrates that portlet E also communicated context information to portlet F to send notification of the change in the resource selector 310 component. Based on the dependency graph 400, the web portal server 275 will send requests, such as a renderRequest, to update the display only for portlet B, portlet D, portlet E, and portlet F. Consequently, the web portal server 275 will not send a request to update the display of the other portlets on portal page 300, portlet A, and portlet C, because the change to the selected resource did not affect the display of the other portlets.
  • FIG. 5 is a flow chart that illustrates one embodiment of the method for asynchronously updating a web page displayed on a computer. With reference to the system components shown in FIG. 2, the method shown in FIG. 5 begins with the display of one of the portal pages 295 in the web browser 225 of the client computer 110 (step 505). A user operates the client computer 110 to request a change to one of the objects displayed on the portal page 295 (step 510). The objects displayed on the portal page 295 may include application elements, applets, servlets, portlets 290, or the like. The client computer 110 generates an event message in response to the request to change one of the objects displayed on the portal page 295, and sends the event message to the server computer 120 (step 515). The event message may include a processAction method call, or the like.
  • The server computer 120 receives the event message (step 520) from the client computer 110 and creates a dependency graph (step 525). The dependency graph is a directed acyclic graph that includes a root node and child nodes that represent a dependency relation to the root node. The server computer 120 adds the object on the portal page 295 that the user changed as the root node for the dependency graph (step 530). In another embodiment, the dependency graph stores a reference to the object, rather than the object. The portlet container 285 receives context information from other objects displayed on the portal page 295 that will change as a result of the change to the object that the user changed (step 535). The server computer 120 adds these other objects on the portal page 295 to the dependency graph as child nodes (step 540). In another embodiment, the dependency graph stores a reference to the other objects, rather than the other objects. The server computer 120 traverses the dependency graph and sends update requests to the portal page 295 for each objects on the portal page 295 associated with a node in the dependency graph (step 545). The update request may include a renderRequest method call, or the like. The client computer 110 receives the update requests and renders the object on the portal page 295 associated with each update request (step 550).
  • The method illustrated in FIG. 5 computes the dependency graph for those objects on the portal page 295 that need to be updated to process the request from the user to change the object. One of ordinary skill in the art will understand that the method illustrated in FIG. 5 allows the server computer 120 to compute the dependency graph dynamically, thereby computing a separate dependency graph for each user interaction with the portal page 295. In addition, computing the dependency graph dynamically with each user interaction allows only the rendering that is necessary to take place, and accommodates unknowable application behaviors, such as adding or removing an object on the portal page 295. The computed dependency graph is a structure for determining which objects in the portal page 295 will be rendered for a given user interaction with the portal page 295. The dependency graph provides automated updates of dependent page fragments without any user intervention and the ability to deliver context to only related user interface elements. The fragments of the portal page 295 may be provided by different web applications. Furthermore, the method of FIG. 5 provides better useability of the portal page 295, reduced latency on response time as the unwanted fragments are left in-place, reduces the bandwidth needed to render the display, the ability to load all the dependent fragments in one asynchronous call, keeps fragments that don't change in cache, and avoids page flicker.
  • The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
  • The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
  • The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.

Claims (20)

1. A method for asynchronously updating at least one web page displayed on a computer, comprising:
receiving an event message from the computer, wherein the event message is a response to an action by a user to change an object displayed on said at least one web page;
creating a dynamic dependency graph having a root node, and at least one child node that depend upon the root node;
adding the object to the dynamic dependency graph as the root node;
receiving context information for other objects displayed on said at least one web page, wherein a dependency exists between the object and the other objects;
adding the other objects to the dynamic dependency graph as said at least one child node; and
sending update requests to said at least one web page displayed on the computer, wherein the update requests are sent to the object associated with the root node, and the other objects associated with said at least one child node.
2. The method of claim 1, wherein the objects displayed on said at least one web page are portlets, applets, or the like.
3. The method of claim 1, wherein the event message is a processAction method call.
4. The method of claim 1, wherein the adding of the object further comprises: storing a reference to the object.
5. The method of claim 1, wherein the dependency is a direct dependency when the action by the user to change the object triggers a change to the other objects, and wherein the dependency is an indirect dependency when the action by the user to change the object triggers a change to a first one of the other objects, which triggers a change to a second one of the other objects.
6. The method of claim 1, wherein the adding of each other object further comprises:
storing a reference to each other object.
7. The method of claim 1, wherein the update request is a render request.
8. The method of claim 1, wherein the sending of the update requests further comprises: traversing the dynamic dependency graph.
9. A system for asynchronously updating at least one web page stored on a computer, comprising:
a memory device resident in the computer; and
a processor disposed in communication with the memory device, the processor configured to:
receive an event message from the computer, wherein the event message is a response to an action by a user to change an object displayed on said at least one web page;
create a dynamic dependency graph having a root node, and at least one child node that depend upon the root node;
add the object to the dynamic dependency graph as the root node;
receive context information for other objects displayed on said at least one web page, wherein a dependency exists between the object and the other objects;
add the other objects to the dynamic dependency graph as said at least one child node; and
send update requests to said at least one web page displayed on the computer, wherein the update requests are sent to the object associated with the root node, and the other objects associated with said at least one child node.
10. The system of claim 9, wherein the objects displayed on said at least one web page are portlets, applets, or the like.
11. The system of claim 9, wherein the event message is a processAction method call.
12. The system of claim 9, wherein to add the object, the processor is further configured to: store a reference to the object.
13. The system of claim 9, wherein the dependency is a direct dependency when the action by the user to change the object triggers a change to the other objects, and wherein the dependency is an indirect dependency when the action by the user to change the object triggers a change to a first one of the other objects, which triggers a change to a second one of the other objects.
14. The system of claim 9, wherein to add each other object, the processor is further configured to:
store a reference to each other object.
15. The system of claim 9, wherein the update request is a render request.
16. The system of claim 9, wherein to send the update requests, the processor is further configured to:
traverse the dynamic dependency graph.
17. A computer program product for asynchronously updating at least one web page stored on a computer, comprising:
a computer readable medium storing:
program code for receiving an event message from the computer, wherein the event message is a response to an action by a user to change an object displayed on said at least one web page;
program code for creating a dynamic dependency graph having a root node, and at least one child node that depend upon the root node;
program code for adding the object to the dynamic dependency graph as the root node;
program code for receiving context information for other objects displayed on said at least one web page, wherein a dependency exists between the object and the other objects;
program code for adding the other objects to the dynamic dependency graph as said at least one child node; and
program code for sending update requests to said at least one web page displayed on the computer, wherein the update requests are sent to the object associated with the root node, and the other objects associated with said at least one child node.
18. The computer program product of claim 17, wherein the program code for adding the first object further comprises:
program code for storing a reference to the object.
19. The computer program product of claim 17, wherein the program code for adding each other object further comprises:
program code for storing a reference to each other object.
20. The computer program product of claim 17, wherein the program code for sending the update requests further comprises:
program code for traversing the dynamic dependency graph.
US12/174,353 2008-07-16 2008-07-16 Asynchronous Partial Page Updates Based On Dynamic Dependency Calculation Abandoned US20100017702A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/174,353 US20100017702A1 (en) 2008-07-16 2008-07-16 Asynchronous Partial Page Updates Based On Dynamic Dependency Calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/174,353 US20100017702A1 (en) 2008-07-16 2008-07-16 Asynchronous Partial Page Updates Based On Dynamic Dependency Calculation

Publications (1)

Publication Number Publication Date
US20100017702A1 true US20100017702A1 (en) 2010-01-21

Family

ID=41531348

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/174,353 Abandoned US20100017702A1 (en) 2008-07-16 2008-07-16 Asynchronous Partial Page Updates Based On Dynamic Dependency Calculation

Country Status (1)

Country Link
US (1) US20100017702A1 (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253941A (en) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 Cache updating method and cache updating device
WO2013123808A1 (en) * 2012-02-21 2013-08-29 北京京东方光电科技有限公司 Drive circuit, shift register, gate driver on array and display device
US20140052772A1 (en) * 2012-08-15 2014-02-20 International Business Machines Corporation Http performance enhancement based on delta transfer
CN103853577A (en) * 2013-06-26 2014-06-11 携程计算机技术(上海)有限公司 Loading method and device of website header navigation bar
US20150121192A1 (en) * 2013-10-24 2015-04-30 Oracle International Corporation Debugging errors in display of web pages with partial page refresh
US20160187724A1 (en) * 2013-10-08 2016-06-30 Sharp Kabushiki Kaisha Image display device
US20170126513A1 (en) * 2015-11-04 2017-05-04 Microsoft Technology Licensing, Llc Generating a deferrable data flow
US20170185612A1 (en) * 2015-12-29 2017-06-29 Successfactors, Inc. Dynamically designing web pages
US9841863B1 (en) * 2012-12-20 2017-12-12 Open Text Corporation Mechanism for partial page refresh using URL addressable hierarchical page structure
WO2018149071A1 (en) * 2017-02-20 2018-08-23 平安科技(深圳)有限公司 Method, apparatus and device for displaying product item, and computer readable storage medium
CN108763511A (en) * 2018-05-30 2018-11-06 腾讯科技(深圳)有限公司 Figure layer composition method, device, electronic equipment and storage medium in the page
CN110333859A (en) * 2019-05-06 2019-10-15 北京字节跳动网络技术有限公司 Page creation method, apparatus, electronic equipment and computer readable storage medium
CN110659098A (en) * 2019-09-23 2020-01-07 北京城市网邻信息技术有限公司 Data updating method and device, terminal equipment and storage medium
US10762062B2 (en) 2016-04-04 2020-09-01 Xerox Corporation Data governance: change management based on contextualized dependencies
CN111723321A (en) * 2019-03-22 2020-09-29 阿里巴巴集团控股有限公司 Page request method, device and storage medium
CN113158110A (en) * 2016-07-08 2021-07-23 创新先进技术有限公司 Data processing method and equipment
US20210326240A1 (en) * 2019-11-13 2021-10-21 Google Llc Framework For Providing Binary Release Isolation For Parts Of A Web Application
CN113835790A (en) * 2020-06-23 2021-12-24 北京字节跳动网络技术有限公司 Paging page display method and device based on Android
CN114547423A (en) * 2022-04-27 2022-05-27 彭州市教育人才管理服务中心 Occupational competence big data knowledge graph data access management method and system
US11442784B2 (en) * 2020-07-17 2022-09-13 Vmware, Inc. Methods and apparatus to handle dependencies associated with resource deployment requests

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US20040260676A1 (en) * 2003-06-10 2004-12-23 International Business Machines Corporation Methods and systems for detecting fragments in electronic documents
US7076728B2 (en) * 2000-12-22 2006-07-11 International Business Machines Corporation Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US7096418B1 (en) * 2000-02-02 2006-08-22 Persistence Software, Inc. Dynamic web page cache
US20060212454A1 (en) * 2005-03-17 2006-09-21 International Business Machines Corporation Method for rendering and refreshing a portal page
US20070143672A1 (en) * 2005-12-16 2007-06-21 Microsoft Corporation Partial rendering of Web pages

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US7096418B1 (en) * 2000-02-02 2006-08-22 Persistence Software, Inc. Dynamic web page cache
US7076728B2 (en) * 2000-12-22 2006-07-11 International Business Machines Corporation Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US20040260676A1 (en) * 2003-06-10 2004-12-23 International Business Machines Corporation Methods and systems for detecting fragments in electronic documents
US20060212454A1 (en) * 2005-03-17 2006-09-21 International Business Machines Corporation Method for rendering and refreshing a portal page
US20070143672A1 (en) * 2005-12-16 2007-06-21 Microsoft Corporation Partial rendering of Web pages

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253941A (en) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 Cache updating method and cache updating device
WO2013123808A1 (en) * 2012-02-21 2013-08-29 北京京东方光电科技有限公司 Drive circuit, shift register, gate driver on array and display device
US20140052772A1 (en) * 2012-08-15 2014-02-20 International Business Machines Corporation Http performance enhancement based on delta transfer
US9058400B2 (en) * 2012-08-15 2015-06-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. HTTP performance enhancement based on delta transfer
US9841863B1 (en) * 2012-12-20 2017-12-12 Open Text Corporation Mechanism for partial page refresh using URL addressable hierarchical page structure
US10509528B2 (en) 2012-12-20 2019-12-17 Open Text Corporation Mechanism for partial page refresh using URL addressable hierarchical page structure
CN103853577A (en) * 2013-06-26 2014-06-11 携程计算机技术(上海)有限公司 Loading method and device of website header navigation bar
US20160187724A1 (en) * 2013-10-08 2016-06-30 Sharp Kabushiki Kaisha Image display device
US20150121192A1 (en) * 2013-10-24 2015-04-30 Oracle International Corporation Debugging errors in display of web pages with partial page refresh
CN108351888A (en) * 2015-11-04 2018-07-31 微软技术许可有限责任公司 Generation can postpone data flow
US20170126513A1 (en) * 2015-11-04 2017-05-04 Microsoft Technology Licensing, Llc Generating a deferrable data flow
EP3371715B1 (en) * 2015-11-04 2023-06-14 Microsoft Technology Licensing, LLC Generating a deferrable data flow
US10608900B2 (en) * 2015-11-04 2020-03-31 Microsoft Technology Licensing, Llc Generating a deferrable data flow
US20170185612A1 (en) * 2015-12-29 2017-06-29 Successfactors, Inc. Dynamically designing web pages
US10762062B2 (en) 2016-04-04 2020-09-01 Xerox Corporation Data governance: change management based on contextualized dependencies
CN113158110A (en) * 2016-07-08 2021-07-23 创新先进技术有限公司 Data processing method and equipment
WO2018149071A1 (en) * 2017-02-20 2018-08-23 平安科技(深圳)有限公司 Method, apparatus and device for displaying product item, and computer readable storage medium
CN108763511A (en) * 2018-05-30 2018-11-06 腾讯科技(深圳)有限公司 Figure layer composition method, device, electronic equipment and storage medium in the page
CN111723321A (en) * 2019-03-22 2020-09-29 阿里巴巴集团控股有限公司 Page request method, device and storage medium
CN110333859A (en) * 2019-05-06 2019-10-15 北京字节跳动网络技术有限公司 Page creation method, apparatus, electronic equipment and computer readable storage medium
CN110659098A (en) * 2019-09-23 2020-01-07 北京城市网邻信息技术有限公司 Data updating method and device, terminal equipment and storage medium
US20210326240A1 (en) * 2019-11-13 2021-10-21 Google Llc Framework For Providing Binary Release Isolation For Parts Of A Web Application
US11748235B2 (en) * 2019-11-13 2023-09-05 Google Llc Framework for providing binary release isolation for parts of a web application
CN113835790A (en) * 2020-06-23 2021-12-24 北京字节跳动网络技术有限公司 Paging page display method and device based on Android
US11442784B2 (en) * 2020-07-17 2022-09-13 Vmware, Inc. Methods and apparatus to handle dependencies associated with resource deployment requests
US11886924B2 (en) 2020-07-17 2024-01-30 VMware LLC Methods and apparatus to handle dependencies associated with resource deployment requests
CN114547423A (en) * 2022-04-27 2022-05-27 彭州市教育人才管理服务中心 Occupational competence big data knowledge graph data access management method and system

Similar Documents

Publication Publication Date Title
US20100017702A1 (en) Asynchronous Partial Page Updates Based On Dynamic Dependency Calculation
US8156419B2 (en) Intelligent preloads of views and asynchronous loading of models using the MVC design pattern
US10356156B2 (en) Method and device for loading webpage
KR102270749B1 (en) custom digital components
US8527862B2 (en) Methods for making ajax web applications bookmarkable and crawlable and devices thereof
US9461896B2 (en) Methods and systems for efficient updating of time-aligned graphs in a monitoring system
US20110239108A1 (en) Configurable dynamic combination of html resources for download optimization in script based web page
US20100131585A1 (en) Displaying information in a client/server system
JP6404816B2 (en) Method and apparatus for responding to web page access request
US20060075336A1 (en) Method, system and program product for providing content over a network
EP3143569A1 (en) Active summaries in user interfaces to collaboration services
JP2015510632A (en) Client-side minimal download and simulated page navigation mechanism
US20110238924A1 (en) Webpage request handling
CN104335524A (en) Common web accessible data store for client side page processing
US8874654B2 (en) System for processing requests to portlets
EP3973681A1 (en) Secure web application delivery platform
US20070288591A1 (en) Method, system, and program product for caching application data in a browser cache
US9892202B2 (en) Web page load time reduction by optimized authentication
US20150215374A1 (en) Delivering an update for a web application
CN106649581B (en) Webpage repairing method and client
US9003365B1 (en) Rapid presentations of versions
JP2007219619A (en) Information management program, device, and method
CN110209964A (en) A kind of page display method, device and equipment
US20140280573A1 (en) Component loading based on user preferences
JP2023522785A (en) Harmony Comprehensive Proxy Service

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION,NEW YO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CARROLL, PAUL LLOYD HAWES;CHOUDHARY, SAMAR;KING, RICHARD ADAM;AND OTHERS;SIGNING DATES FROM 20080714 TO 20080715;REEL/FRAME:021247/0322

STCB Information on status: application discontinuation

Free format text: EXPRESSLY ABANDONED -- DURING EXAMINATION