Movatterモバイル変換


[0]ホーム

URL:


US9756110B2 - Systems and methods for optimizing web page load time - Google Patents

Systems and methods for optimizing web page load time
Download PDF

Info

Publication number
US9756110B2
US9756110B2US14/512,205US201414512205AUS9756110B2US 9756110 B2US9756110 B2US 9756110B2US 201414512205 AUS201414512205 AUS 201414512205AUS 9756110 B2US9756110 B2US 9756110B2
Authority
US
United States
Prior art keywords
redirectable
references
web page
identified set
iframes
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.)
Active, expires
Application number
US14/512,205
Other versions
US20160103803A1 (en
Inventor
Chun Tak Lam
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.)
Salesforce Inc
Original Assignee
Salesforce com Inc
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 Salesforce com IncfiledCriticalSalesforce com Inc
Priority to US14/512,205priorityCriticalpatent/US9756110B2/en
Assigned to SALESFORCE.COM, INC.reassignmentSALESFORCE.COM, INC.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: LAM, CHUN TAK
Publication of US20160103803A1publicationCriticalpatent/US20160103803A1/en
Application grantedgrantedCritical
Publication of US9756110B2publicationCriticalpatent/US9756110B2/en
Assigned to SALESFORCE, INC.reassignmentSALESFORCE, INC.CHANGE OF NAME (SEE DOCUMENT FOR DETAILS).Assignors: SALESFORCE.COM, INC.
Activelegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

The technology disclosed relates to systems and methods for using deduplication when rendering complex web pages with multiple iFrames, to improve performance and reduce memory requirements. We refer to the technology disclosed as “server-side rework” of interface web pages with multiple iFrames by post processing. Custom interface web pages with multiple iFrames can use the disclosed server-side rework to post-process complex interface web pages for improved performance and reduced memory requirements.

Description

BACKGROUND
The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to implementations of the claimed technology.
The technology disclosed relates to systems and methods for optimizing web page load time using deduplication based on component metadata, to improve performance and reduce memory requirements when rendering complex web pages with multiple iFrames. We refer to the technology disclosed as “server-side rework” of interface web pages with multiple iFrames by post processing. The terminology “server-side rendering” has been used to describe other technology, so we adopt “server-side rework.” Custom interface web pages with multiple iFrames can use the disclosed server-side rework to post-process complex interface web pages for improved performance and reduced memory requirements.
An iFrame is a powerful HTML element that allows embedding of one web page within another web page. Use of iFrames is popular in the development of customer relation management (CRM) interfaces, in part because iFrames support mash ups between software provided by a CRM vendor and other sources of information. That is, a web application can use content from more than one source to create a single new service displayed in a single graphical interface. For example a healthcare application platform could connect conversations, care providers, clinical and administrative systems such as electronic medical records, and even external devices like glucose monitors, to create a care management interface. A complex web page that includes four or more iFrames can be unwieldy, slow to load, and clumsy as it updates.
An opportunity arises to improve runtime globally across a wide spectrum of user computing devices using deduplication based on tenant-specific metadata. An example use for the disclosed deduplication systems and methods includes rendering complex web pages with four or more iFrames efficiently to improve a user's browsing experience. The disclosed deduplication technology also improves application interface runtime on mobile devices. Improved customer experience and engagement, higher customer satisfaction and retention, and greater sales may result.
BRIEF DESCRIPTION OF THE DRAWINGS
The included drawings are for illustrative purposes and serve only to provide examples of possible structures and process operations for one or more implementations of this disclosure. These drawings in no way limit any changes in form and detail that may be made by one skilled in the art without departing from the spirit and scope of this disclosure. A more complete understanding of the subject matter may be derived by referring to the detailed description and claims when considered in conjunction with the following figures, wherein like reference numbers refer to similar elements throughout the figures.
FIG. 1 shows an example page load accelerator environment for optimizing rendering and delivery of console web pages that use component libraries.
FIG. 2 shows example block diagrams for components of the accelerator environment.
FIG. 3 is an example console GUI implemented with iFrames.
FIG. 4 shows an example list of iFrames on a web page, such as the console GUI inFIG. 3, and an example list of component libraries that could be shared among the listed iFrames.
FIG. 5 shows a list of examples of jQuery library loads in which multiple instances of the same resource library are loaded.
FIG. 6 shows an example search popup window for a console web page.
FIG. 7 is a block diagram of an example computer system capable of using deduplication when rendering complex web pages with multiple iFrames.
FIG. 8 shows an example search popup and the code snippet used to implement the popup using an iFrame.
FIG. 9 shows an example search popup and the code snippet used to implement the popup using a div.
FIG. 10 shows an example search popup and the code snippet using an HTML div element coupled with an object tag embedded in the console web page.
FIG. 11 shows an example flow chart of redirection implementations.
DETAILED DESCRIPTION
The following detailed description is made with reference to the figures. Sample implementations are described to illustrate the technology disclosed, not to limit its scope, which is defined by the claims. Those of ordinary skill in the art will recognize a variety of equivalent variations on the description that follows.
Complex web page consoles that mash up web pages using multiple iFrames can be unwieldy, slow to load, and clumsy to update, as mentioned above. One cause of this is duplication of resources used by multiple iFrames in the console. Some resources such as JQuery.js and logo images are often repeated multiple times, as are some cascading style sheets (CSS). A console analyzer that automatically detects duplication of resources can implement consolidation of the web page resources. Automated analysis is beneficial when independent development groups update web pages in the multiple iFrames without release coordination.
The technology disclosed can include duplication analysis on a predetermined cycle, such as daily or hourly. It can include more frequent incremental analysis, such as hourly or every five minutes, that evaluates whether web pages in the multiple iFrames have changed since the last analysis. Re-analysis can be triggered by detection of a change. The change can either be in the source of the web pages or in a list of resources extracted from the web pages. This incremental analysis approach also can be applied on behalf of a particular user based on usage criteria, such as every tenth or twentieth user request to the console.
The technology disclosed can respond to detection of duplicate resources in a variety of ways. Server side rework can modify references to resources so that web page code directs resources to abridging HTML web page that causes loading of a canonical, sharable resource. Browser or app side rework can use a table associated with the console to redirect multiple requests for an identical resource to a canonical resource. Or, a browser or app cache can be provided that recognizes, from analysis, that a cached canonical resource can be returned in response to a variety of URLs or URIs that would otherwise be resolved to multiple but identical instances of the resource. Similarly, a memcached server can be provided that recognizes, from analysis, which a cached canonical resource can be returned in response to a variety of URLs or URIs.
The stability of sharing resources among iFrames can be tested, proven or improved by server side test loading of consoles and constituent web pages by a real or emulated browser that catches any rendering errors that result from a sharing strategy.
A related server side rework technology that can respond to detection of duplicate resources is rewriting complex HTML web pages from <iFrame> to <div> containers. The rework is automated, avoiding human errors in a complex process and happening quickly enough to respond to unscheduled changes in component iFrames.
Optimization Environment
FIG. 1 shows an exampleiFrame accelerator environment100 for web page load optimization that makes use of deduplication based on component metadata. The environment includes adata store104 that has a directory stored therein which maps an identity for each console user to customer-specific services; aconsole configuration store106 that includes a reference to the resources for rendering a console web page for specific users; andlocal libraries108. Local libraries may be stored in a browser cache or may be memcached using a general-purpose distributed memory caching system. Alternativelylocal libraries108 may be implemented using a hybrid between memcached and browser caching systems.
The accelerator environment also includes aresource analysis engine120 for identifying component libraries and image attributes for console web page rendering. iFrame to divconverter engine140 converts iFrames to alternative code that implements the same functionality and features while redirecting references to each set of identical function libraries to a canonical function library. In HTML, <iFrame> and <div> tags delimit containers. The iFrame to div converter engine reworks an HTML page using div elements, or a combination of div elements coupled with object tags, to bring the web pages referenced by the iFrames onto the console page.
The accelerator environment includes network(s)144,remote libraries148, and alibrary caching engine160 for caching resources identified by theresource analysis engine120 inlocal libraries108.User computing device185,application186, andconversion configurations188 for iFrame to div support are also included in the accelerator environment. In other implementations,environment100 may not have the same elements or components as those listed above and/or may have other/different elements or components instead of or in addition to, those listed above, such as a web server and template database. The different elements or components can be combined into single software modules and multiple software modules can run on the same hardware.
Resource analysis engine120, iFrame todiv converter engine140,library caching engine160, anddeduplication engine170 can be implemented using varying types of hardware including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Network or bus-based inter-process communication can be used to implement communication among engines and databases, consistent with data center design considerations that are beyond the scope of this disclosure.
In some implementations,resource analysis engine120 can be communicably coupled to auser computing device185 via different network connections, such as the Internet. In some implementations, iFrame todiv converter engine140 can be communicably coupled to auser computing device185 via different network connections, such as a direct network link. In some implementations,library caching engine160 anddeduplication engine170 can be communicably coupled touser computing device185 via different network connections, such as the Internet or a direct network link.
Network(s)144 is any network or combination of networks of devices that communicate with one another. For example, network(s)144 can be any one or any combination of a LAN (local area network), WAN (wide area network), telephone network (Public Switched Telephone Network (PSTN), Session Initiation Protocol (SIP), 3G, 4G LTE, wireless network, point-to-point network, star network, token ring network, hub network, WiMAX, WiFi, peer-to-peer connections like Bluetooth, Near Field Communication (NEC), Z-Wave, ZigBee, or other appropriate configuration of data networks, including the Internet. In other implementations, other networks can be used such as an intranet, an extranet, a virtual private network (VPN), a non-TCP/IP based network, any LAN or WAN or the like.
Local libraries108 can be implemented using a general-purpose distributed memory caching system. In some implementations, databases can store information from one or more tenants into tables of a common database image to form an on-demand database service (ODDS), which can be implemented in many ways, such as a multi-tenant database system (MTDS). A database image can include one or more database objects. In other implementations, the databases can be relational database management systems (RDBMSs), object oriented database management systems (OODBMSs), distributed file systems (DFS), no-schema database, or any other data storing systems or computing devices.
In some implementations,user computing device185 can be a personal computer, laptop computer, tablet computer, smartphone or other mobile computing device, personal digital assistant (PDA), digital image capture devices, and the like.
Application186 can take one of a number of forms, including user interfaces, dashboard interfaces, engagement consoles, and other interfaces, such as mobile interfaces, tablet interfaces, summary interfaces, or wearable interfaces. In some implementations, it can be hosted on a web-based or cloud-based application running or can run on a local computing device such as a personal computer, laptop computer, mobile device, and/or any other hand-held computing device. It can also be hosted on a non-social local application running in an on premise environment. In one implementation,application186 can be accessed from a browser running on a computing device. The browser can be Chrome, Internet Explorer, Firefox, Safari, Opera and the like. In other implementations,application186 can run as an engagement console on a computer desktop application.
Local libraries108 andremote libraries148 include the common or canonical resources for console interfaces and other applications. Examples of the content oflocal libraries108 include JavaScript, images, and cascaded style sheets (CSS). In one implementation, library resources are stored as computer readable code written in any programming language. Some examples of languages that can be used include C, AJAX, Python, C++, or JAVA. The software programs can be further translated into machine language or virtual machine instructions and stored in a program file in that form. The program file can then be stored on or in one or more of the articles of manufacture, according to other implementations.
The disclosed technology is discussed in the context of optimizing the rendering of a service cloud console, in which specific tenants embed different components in a console to show on a single screen. In this example, we illustrate use of one iFrame per component to render the console web page.
IFrames and Library Components
FIG. 3 shows an example console rendered using multiple iFrames. The console includes a Clients andProspects iFrame310 that provides the ability to view names, tagged as client or prospect, and selectable by the console user. AContact Information iFrame312 displays customer contact information. A Client andProspect Detail iFrame322 renders the center section of the console, and includes links to various example external applications such as Linked In, Twitter, Facebook, and YouTube. A Log aNote iFrame326 renders the far right segment of the console—providing a mechanism for console users to set up tasks and events.
Along the lower strip of the console, 7 iFrames render 7 button options for console users. TheSearch button380 triggers apopup search box625 with a search interface for contacts, as shown inFIG. 6. We describe optimization of search below. The MostRecent button381 triggers a popup list of recently accessed contacts, prospects or other objects that represent entities. TheCalendar button382 triggers a calendar popup. Log aNote button383 activates the Log aNote iFrame326. TheTools button384 triggers a popup list of Tools for users. TheDivision button385 shows regions of the world for a contact, and the Finder—Salesforce.com button386 returns a console user to the home iFrame. The functionality of each button is rendered using a distinct iFrame. Within the Tools popup, additional iFrames support more functions.
FIG. 4 shows an example list ofiFrames410 for delivering a console web page and component library examples418 to be used by one or more of theiFrames410. Two examples of internal windows that use component libraries are Clients and Prospects, and Search. Examples of external windows include Facebook and Google Maps.
Some common resources are required by all the iFrames on a page. For example, jQuery is a JavaScript library designed to simplify the client-side scripting of HTML.FIG. 5 shows some of thejQuery resources500 that would be downloaded to render the example console shown inFIG. 3. TheInitiator iFrames518 specifies which iFrame initiates a specific jQuery component download. For example, theSearch button380 iFrame initiated the request for jQuery-1.9.1.min.js520. TheToots iFrame384 initiated the request forjQuery191530. Similarly each iFrame requests library components. A servlet integration component can extend the functionality of the server to provide the “glue” to ensure that console components mesh into a coherent web page; the servlet integration is responsible for jQuery downloads,560 and570. Note that multiple jQuery downloads have similar but differing version names. Since it is unlikely that versions of component libraries with differing names are identical, a download of each requested component library helps to ensure correct functionality. In some implementations, a deeper analysis could be performed, such as checking a circular redundancy code (CRC) or MD5 checkcode to determine if files are identical, despite having slightly different names.
Often the same library gets downloaded many times to render a console web page. The disclosed methods evaluate the use of component libraries, and consolidate downloads of function libraries used in distinct iFrames to solve the problem of duplicated downloads of the same library.
Analysis of Static Resource Use
Servers provide component resources that clients use to render a web page. Examples of static resources include component libraries, style sheets and images. Attributes of HTML tags that reference these static resources include the “src=” attribute, the “href=” attribute, and the “img=” tag. The src attribute defines a URI or location of the element being requested, be it an image, a script, or another web page. src is short for “source.” The href attribute specifies the URL of the page to which the link goes. The img tag creates a holding space for a referenced image.
Before performing any optimizations for the web page, the disclosedresource analysis engine120 determines which static resources are needed to render the page.
Thecomponent library identifier222 shown inFIG. 2 searches for static resources invoked by a complex web page and its constituent iFrames. It identifies sets of identical redirectable function libraries that are referenced multiple times by distinct iFrames.
The source attribute orscript identifier232 parses HTML for script tags and theimage identifier242 parses for img instances to identify other static resources. For example, a Google engine typically uses the same libraries each time the Google homepage is delivered to a web page in a browser. The source attribute orscript identifier232 identifies “src=” or “href=” attributes and associated URL attributes for the libraries. A search for src attributes can produce a list of approximately 90% of the resources for delivering a page. An example of JavaScript required for rendering the home page, www.google.com, shows example src tags that would be identified as images that could be loaded once and then cached.
 <body class=“hp vasq”
 onload=“try{if(!google.j.b){document.f&amp;amp;
 &amp;amp;document.f.q.focus( );document.gbq
 f&amp;amp;&amp;amp;document.gbqf.q.focus( );}}
 catch(e){ }if(document.images)new
 Image( ).src=‘/images/nav_logo170.png’”........>
<script data-url=“/extern_chrome/677700198bf7b1ab.js?
bav=or.r_qf” id=“ecs”></script>
For situations in which the library components referenced on a complex web page shift over time, the static analysis described above can result in a quickly-outdated list of resources. In those situations, the technology disclosed includes a method of dynamic analysis to detect component libraries and other static resources that should be added to or updated in the reference list that was compiled via static analysis.
Theresource analysis engine120 performs static and dynamic analysis. The static analysis is performed periodically. The period can relate to how often components of a console change. The dynamic analysis can be performed at the outset of a session and then again at sampling intervals during a session.
Theresource analysis engine120 completes dynamic analysis—using a server-side rendering or parsing of the console web page by the webpage rendering engine212 to identify the required library resources for delivering the console to the client. When the page version changes, for instance when a new version of one of the page is deployed, the list of required library resources is regenerated.
The results of this dynamic analysis can be compared with the results from the static analysis to improve accuracy for the list of library components. For example, some library components may be dynamic enough that they will need to be loaded any time the console web page is delivered, while other components such as a company logo will rarely change, so will be loaded only the first time the web page is rendered for a customer using the console for a session. That is, library components that are stable over time can be cached and reused, saving load time when a web page is delivered to a user.
The disclosed technology includes sampling as a trigger of dynamic analysis. Thesample analyzer252 samples some subset of instances of requests by a user to interact via the application console, to determine what component libraries are in use. For example, thesample analyzer252 can be configured to determine which component libraries are used to deliver the web page to be rendered. In one implementation, the sampling frequency may be one percent of mouse events on the console for a specific user. In another implementation the sampling frequency may be as high as twenty percent of mouse events on the console for a user. The number of samples depends on the sampling method. In some implementations, such as asynchronous logging, thesample analyzer252 may track every request.
The disclosed technology includes analysis options. Theresource analysis engine120 can combine the results of static analysis, dynamic analysis, and sampling analysis to compile an accurate reference for the resource files used to render a console web page. That information is stored for use by thededuplication engine170. Examples of storage formats include XML (extensible Markup Language), GPB (Google Protocol Buffers), CSV (comma separated values), JSON (JavaScript Object Notation), BSON (Binary JSON), TOML (Tom's Obvious, Minimal Language), and YAML (Yet Another Markup Language).
An example XML format for identifying libraries used with a complex web page:
TestPage.xml
<Page: TestPage.page>
<Resource>TestImage</Resource>
<Resource>MyJavascriptFile</Resource>
<Resource>JQuery.js</Resource>
<Resource>Main.js</Resource>
....
</Page>
These XML statements are stored for the currently used library components. When a component changes, such as when a web page console design changes, theresource analysis engine120 computes updated metadata, adding new resources to the test page, and to the xml.
Deduplication
After theresource analysis engine120 completes an analysis of component library usage, theunique resource identifier266—in thededuplication engine170—identifies a reference of unique resources for the components used to render and deliver a web page console. An example of the deduplication process shows the libraries needed by each component of a web page console.
Component1 requires JS1, JS2, and CSS1
Component2 requires JS1, JS3, and CSS1
Component3 requires JS1, JS2, and CSS2
Component4 requires JS2, CSS1, and CSS2
Theunique resource identifier266 identifies the unique components for rendering the console as JS1, JS2, JS3, CSS1, and CSS2. Then thelibrary cache controller276 provides the unique component reference list to thelibrary caching engine160,
For optimization, in some implementations thededuplication engine170 can run duringapplication186 startup. Then, thelibrary caching engine160 can cache the identified components inlocal libraries108 to reduce the number of times component libraries must be fetched fromremote libraries148, mapping redirection of each set of identical function libraries to a canonical function library.
Any change to the console setup will invalidate the local libraries cache. If invalidated, then thededuplication engine170 will run again and thelibrary caching engine160 will capture the current components to be used for rendering the console. At run time, when we render a console for a user who interacts with anapplication186 on auser computing device185, we can fetch from thelocal libraries108, loading the canonical function library—the unique set of resources that are needed by the different components. The first user after a change to the console setup may experience a slower web page delivery due to thededuplication engine170, and later users will receive the benefit of pre-loaded components, and consequently a faster rendering and delivery of the web page console.
Reworking and other Redirection Technologies
Server-side rework can simplify delivery by redirecting redundant resource requests. In addition, in some implementations, <iFrame> containers can be reworked into <div> containers. In one implementation, a rework method improves load performance by using a top or parent window load required resources just once. Several strategies are described for sharing the once loaded resources among child windows, instead of the child windows loading their own copies of the resources. In another implementation, we identify potential conversions from iFrame to div to dynamically simplify delivery by substituting HTML div containers for iFrames in HTML code sent to client browsers.
Window.Parent or Window.Top Method
A browsing context has its own session history and active document. The HTML iFrame element and HTML inline frame element represent nested browsing contexts, effectively embedding another HTML page into the current page. The browsing context that contains the embedded content is called the parent browsing context. The top-level browsing context, which has no parent, is typically the browser window. Window.parent is a reference to the parent of the current window or subframe. If a window does not have a parent, its parent property is a reference to itself. When a window is loaded in an iFrame, object, or frame, its parent is the window with the element embedding the window. When within a frame, window refers to the current frame, parent refers to the parent of the current frame, and top refers to the outermost frame. Window.top returns a reference to the topmost window in the window hierarchy.
In our example console, we show windows that are rendered using a single iFrame per window. Parent refers to the console browser window that opens child windows (iFrames) that implement various components of the console, such as a search popup window.FIG. 6 shows thesearch button380, and the resultingsearch popup window625 that appears on the console web page as a result of the search button being selected by a console user.
To improve the outcome based on the results of the disclosed analysis technology, the parent/child window manager286 determines how many layers of nested iFrames are used to render a console web page. The parent/child window manager286 loads references to unique library component resources in the parent window (the console iFrame), and modifies the paths in child window iFrames to use a relative path to access the parent window resources. In this way, we only load the resources once and they are shared by all child windows instead of each child window retaining their own copy. That is, distinct iFrames include an HTML parent that redirects resolution of the references to the identical function libraries to the canonical function library reference on a parent web page. The parent/child window manager286 adds a canonical function library reference to the parent web page.
Shown below is example code for rendering the search popup window, before implementation of the parent/child window manager286. In this example, child window iFrames use their own local library component references, and download their library components separately from any components downloaded by the parent console window iFrame.
<iFrame id=“scc_widget_ConsoleSearchButtonDoc”
name=“scc_widget_ConsoleSearchButtonDoc”
scrolling=“no” frameborder=“0”
src=“/apex/SL_AccountSearch?isdtp=vw&amp;amp;
nonce=ecaa4670ebd72e5c74935a0b0a16
2ca1bbec9fa86b4915e16d40c5d6158e7b9c&amp;amp;
sfdcIFrameOrigin=https%3A%2F%2Fi
st10.soma.salesforce.com” style=“width: 350px;
height: 273px;”></iFrame>
.....
 <script>
 /*
  * Completely describes the individual metadata
 at all levels for the specified object.
  * @param objtype object type; e.g. “Account”
  * @param callback function to which response
 will be passed
  * @param [error=null] function to which jqXHR
 will be passed in case of error
  */
 remotetk.Client.prototype.describe = function(objtype,
 callback, error) {
  Visualforce.remoting.Manager.invokeAction
(‘SL_RemoteTKController.describe’, objtype, function(result){
   handleResult(result, callback, error);
  }, {
   escape: false
  });
 }
 ...
 <script type=“text/javascript”>
 $j(document).ready(function( ) {
  sforce.console.addEventListener(‘openSearchButton’,
  openButton);
  //set value of state dropdown to ‘none’
  $j(‘#iBillingState’).val(‘−1’);
 ...
</script><a href=“#"1" nameend="2" align="center" rowsep="1" colspan="2">
To redirect child window iFrames to use library component references stored in the parent window console iFrame, the child window iFrame code can be modified as shown in the example below:
<iFrame id=“scc_widget_ConsoleSearchButtonDoc”
name=“scc_widget_ConsoleSearchButtonDoc”
scrolling=“no” frameborder=“0”
src=“/apex/SL_AccountSearch?isdtp=vw&amp;amp;
nonce=ecaa4670ebd72e5c74935a0b0a16
2ca1bbec9fa86b4915e16d40c5d6158e7b9c&amp;amp;
sfdcIFrameOrigin=https%3A%2F%2Fi
st10.soma.salesforce.com” style=“width: 350px;
height: 273px;”></iFrame>
.....
 <script>
 /*
  * Completely describes the individual metadata
  * at all levels for the specified object,
  * @param objtype object type; e.g. “Account”
  * @param callback function to which response will be passed
  * @param [error=null] function to which jqXHR will be passed in
  case of error
  */
 remotetk.Client.prototype.describe = function(objtype,
 callback, error) {
Window.parent.Visualforce.remoting.Manager.invokeAction
(‘SL_RemoteTKController.describe’, objtype, function(result){
   handleResult(result, callback, error);
  }, {
   escape: false
  });
 }
.....
 <script type=“text/javascript”>
 $j(parent.document).ready(function( ) {
 Window.parent.sforce.console.addEventListener
 (‘openSearchButton’, openButton);
 //set value of state dropdown to ‘none’
 $j(‘#iBillingState’).val(‘−1’);
 ...
</script><a href=“#"1" nameend="1" align="center" rowsep="1" colspan="1">
Using the window.parent property causes the search button popup window iFrame to use the component library references in the parent window, so that only a single instance of each unique library component need be downloaded to render the console browser web page. By loading a single instance of each resource, load time and memory use are decreased.
Caching Redirection
Redirection can also be implemented by a browser or memchache, instead of by reworking web page code. One approach involves providing a browser extension and a table that cross references the multiple redirectable function libraries in the set to the canonical function library. This includes redirecting references looking up the multiple redirectable function libraries in the table and treating the tabled libraries as references to the canonical function library. These dynamically redirected references are processed as web page content.
Another implementation includes a browser cache extension and a table that cross references the multiple redirectable function libraries to the canonical function library. The modified browser cache looks up the multiple redirectable function libraries in the table and treats the tabled libraries as references to the canonical function library. When the canonical function library or other resource is available in cache, references to the multiple redirectable function libraries can be redirected and then processed as cache requests. A user or the user's organization can have a custom configuration file or table that cross references the multiple function libraries to the canonical function library.
References to function libraries can also be redirected using a memcached server extension and a table or configuration file, per tenant, that cross references redirectable function libraries to a canonical function library. The redirected references can be processed as memcached server requests.
Redirection as a browser or browser cache extension also can be applied to four or more tabs open in the same browser. The tabs can be within the same browser window instance or across browser window instances. One approach involves providing a browser extension and a table that cross references the multiple redirectable resources in the set to the canonical resources. Applied to tabs instead of iFrames, this approach involves dynamic analysis of the static resources, such as function libraries, used across a plurality of the tabs currently active. The tabs involved can be all of the tabs in use or limited to predetermined application tabs, such as CRM-related tabs. Using a table within a browser extension includes redirecting references by looking up the multiple redirectable resources in the dynamically compiled table and treating the tabled resources as references to the canonical resources. These dynamically redirected references are processed as web page content.
Another implementation includes a browser cache extension and a table that cross references the multiple redirectable resources to the canonical resources. The modified browser cache looks up the multiple redirectable resources in the table and treats the tabled resources as references to the canonical resources. When the canonical resource is available in cache, references to the multiple redirectable resources can be redirected and then processed as cache requests. A user or the user's organization can have a custom configuration file or table that cross references the multiple resources to the canonical resources.
iFrame to Div Method
Server-side rework pre-renders constructs of the console, to simplify delivery. Configuration information gleaned from analysis of the library components of the console web page identifies components to de-duplicate when reworking code from iFrame to div containers. This conversion is a dynamic simplification that substitutes HTML div containers for iFrames in HTML code sent to client browsers. As an example, the iFrame todiv converter engine140 can convert thesearch popup625 shown inFIG. 8 implemented as aniFrame880 to a div. Listed below is a code snippet showing the search popup rendered using an iFrame.
<iFrame id=“scc_widget_ConsoleSearchButtonDoc”
name=“scc_widget_ConsoleSearchButtonDoc”
scrolling=“no” frameborder=“0”
src=“/apex/SL_ AccountSearch?isdtp=vw&amp;amp;
nonce=3d84248bd105ae4fb7397c358a80
9abd1f82fb275746e9970f0a91e6bc342a37&amp;amp;
sfdcIFrameOrigin=https%3A%2F%2F
mist4.soma.salesforce.com” style=“width: 350px;
height: 274px;”></iFrame>
TheiFrame converter262 replaces an iFrame with an HTML div element, along with all of the code from the iFrame. An example of this option is shown inFIG. 9, though only the first few lines of thediv980, of many, of the code snippet are captured in the screenshot. The start tag of the div element for the search popup is shown below.
<div id=“scc_widget_ConsoleSearchButtonDoc”
name=“scc_widget_ConsoleSearchButtonDoc”
style=“width: 350px; height: 274px;”>
After the div start tag shown in the code snippet above, the original code from within the iFrame would be included, with the exception of header and body tags.
Alternatively, the div andobject system264 renders thesearch popup625, shown inFIG. 10, using an HTML div element coupled with an object tag that defines theConsoleSearchButtonDoc object1080 embedded in the console web page. A code snippet showing the search popup rendered using a div element coupled with an object tag is shown below.
<div style=“margin: 0 auto; width: 960px;
height: 400px; overflow: auto;”>
<object id=“scc_widget_ConsoleSearchButtonDoc”
name=“scc_widget_ConsoleSearchButtonDoc”
data=“/apex/SL_AccountSearch?isdtp=vw&amp;amp;
nonce=3d84248bd105ae4fb7397c358a8
09abd1f82fb275746e9970f0a91e6bc342a37&amp;amp;
sfdcIFrameOrigin=https%3A%2F%2F
mist4.soma.salesforce.com” style=“width: 350px;
height: 274px;”></object>
Both conversion options render the same console search popup. Substitutions of HTML div containers and object tags for iFrames in HTML code sent to client browsers can be used to redirect requests for static resources—function libraries, CSS, and images—used by iFrames on a complex web page. This redirection of references for library components, CSS and images via code rewriting can reduce the number of resources to be loaded, thereby optimizing page load time and memory requirements.
Computer System
FIG. 7 is a block diagram of700 an example computer system capable of using deduplication when rendering complex web pages with multiple iFrames.Computer system710 typically includes at least oneprocessor772 that communicates with a number of peripheral devices viabus subsystem750. These peripheral devices can include astorage subsystem726 including, for example, memory devices and a file storage subsystem, userinterface input devices738, userinterface output devices778, and anetwork interface subsystem776. The input and output devices allow user interaction withcomputer system710.Network interface subsystem776 provides an interface to outside networks, including an interface to corresponding interface devices in other computer systems.
Userinterface input devices738 can include a keyboard; pointing devices such as a mouse, trackball, touchpad, or graphics tablet; a scanner; a touch screen incorporated into the display; audio input devices such as voice recognition systems and microphones; and other types of input devices. In general, use of the term “input device” is intended to include possible types of devices and ways to input information intocomputer system710.
Userinterface output devices778 can include a display subsystem, a printer, a fax machine, or non-visual displays such as audio output devices. The display subsystem can include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem can also provide anon-visual display such as audio output devices. In general, use of the term “output device” is intended to include all possible types of devices and ways to output information fromcomputer system710 to the user or to another machine or computer system.
Storage subsystem726 stores programming and data constructs that provide the functionality of some or all of the modules and methods described herein. These software modules are generally executed byprocessor772 alone or in combination with other processors.
Memory722 used in the storage subsystem can include a number of memories including a main random access memory (RAM)734 for storage of instructions and data during program execution and a read only memory (ROM)732 in which fixed instructions are stored. Afile storage subsystem736 can provide persistent storage for program and data files, and can include a hard disk drive, a floppy disk drive along with associated removable media, a CD-ROM drive, an optical drive, or removable media cartridges. The modules implementing the functionality of certain implementations can be stored byfile storage subsystem736 in thestorage subsystem726, or in other machines accessible by the processor.
Bus subsystem750 provides a mechanism for letting the various components and subsystems ofcomputer system710 communicate as intended. Althoughbus subsystem750 is shown schematically as a single bus, alternative implementations of the bus subsystem can use multiple busses.Application server780 can be a framework that allows the applications ofcomputer system710 to run, such as the hardware and/or software, e.g., the operating system.
Computer system710 can be of varying types including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description ofcomputer system710 depicted inFIG. 7 is intended only as one example. Many other configurations ofcomputer system710 are possible having more or fewer components than the computer system depicted inFIG. 7.
In some implementations, network(s) can be any one or any combination of Local Area Network (LAN), Wide Area Network (WAN), WiMAX, WiFi, telephone network, wireless network, point-to-point network, star network, token ring network, hub network, mesh network, peer-to-peer connections like Bluetooth, Near Field Communication (NFC), Z-Wave, ZigBee, or other appropriate configuration of data networks, including the Internet.
Improving Rendering Performance of Complex Web Panes
FIG. 11 shows anexample flow chart1100 of redirection implementations.Flowchart1100 can be implemented at least partially with a database system, e.g., by one or more processors configured to receive or retrieve information, process the information, store results, and transmit the results. Other implementations may perform the actions in different orders and/or with different, fewer or additional actions than the ones illustrated inFIG. 11. Multiple actions can be combined in some implementations. For convenience, this flowchart is described with reference to the system that carries out a method. The system is not necessarily part of the method.
Ataction1102, function libraries used within iFrames on a complex web page are evaluated. The function libraries that includes four or more distinct iFrames to identify sets of identical redirectable function libraries that are referenced in multiple distinct instances within the distinct iFrames.
Ataction1112, redirection of each set of identical function libraries to a canonical function library is mapped. In one implementation, loading the complex web page includes loading the canonical function library instead of loading the multiple distinct instances of the identical redirectable function libraries in the distinct iFrames.
Ataction1122, references to each set of identical function libraries on the web pages within the distinct iFrames are modified. In one implementation, the modifying includes prefixing the references to the identical function libraries with redirection to a bridging level HTML parent web page. The bridging level HTML parent web page includes references to the canonical function library and to the distinct iFrames.
In some other implementations, the modifying includes prefixing each of the references to the identical function libraries with a count of literal “parent.” or a literal “top.” or a reference derived from a “parent.” or “top.” function, in place of a longer URL location of a distinct instance of the library, that redirects the references to the identical function libraries to a bridging level HTML parent web page. The bridging level HTML parent web page reference to the canonical function library.
Ataction1132, a browser extension and a table are provided that cross references the multiple redirectable function libraries in the set to the canonical function library. In some implementations, references to the multiple redirectable function libraries to the canonical function library are redirected and the redirected references are processed as web page content. In addition, a browser cache extension and a table are that cross references the multiple redirectable function libraries to the canonical function library.
Ataction1142, references the multiple redirectable function libraries to the canonical function library are redirected and the redirected references are processed as cache requests. Further, used are a memcached server extension and at least one table or config file that cross references the multiple redirectable function libraries to the canonical function library and the references to the multiple redirectable function libraries to the canonical function library are redirected and the redirected references are processed as memcached server requests. In addition, the evaluation of the complex web page is performed before a session starts to cache the canonical function libraries and the evaluation of the complex web page is updated at the start of a session to update the cache of the canonical function libraries.
Particular Implementations
In one implementation, a computer-implemented method is described of improving rendering performance of complex web pages with four or more iFrames, including evaluating function libraries used within iFrames on a complex web page that includes four or more distinct iFrames to identify sets of identical redirectable function libraries that are referenced in multiple distinct instances within the distinct iFrames. This method further includes mapping redirection of each set of identical function libraries to a canonical function library. In one implementation, loading the complex web page includes loading the canonical function library instead of loading the multiple distinct instances of the identical redirectable function libraries in the distinct iFrames.
This method and other implementations of the technology disclosed can include one or more of the following features and/or features described in connection with additional methods disclosed. In the interest of conciseness, the combinations of features disclosed in this application are not individually enumerated and are not repeated with each base set of features. The reader will understand how features identified in this section can readily be combined with sets of base features identified as implementations such as optimization environment, iFrames and library components, analysis of static resource use, deduplication, reworking and other redirection technologies, iFrame to Div method, etc.
This method includes modifying references to each set of identical function libraries on the web pages within the distinct iFrames. In one implementation, the modifying includes prefixing the references to the identical function libraries with redirection to a bridging level HTML parent web page. The bridging level HTML parent web page includes references to the canonical function library and to the distinct iFrames.
One implementation includes a method of modifying references to each set of identical function libraries on the web pages within the distinct iFrames. In one implementation, the modifying includes prefixing each of the references to the identical function libraries with a count of literal “parent.” or a literal “top.” or a reference derived from a “parent.” or “top.” function, in place of a longer URL location of a distinct instance of the library, that redirects the references to the identical function libraries to a bridging level HTML parent web page. The bridging level HTML parent web page reference to the canonical function library.
This method also includes providing a browser extension and a table that cross references the multiple redirectable function libraries in the set to the canonical function library. It further includes redirecting references to the multiple redirectable function libraries to the canonical function library and processing the redirected references as web page content. In addition, it includes providing a browser cache extension and a table that cross references the multiple redirectable function libraries to the canonical function library.
This method also includes redirecting references the multiple redirectable function libraries to the canonical function library and processing the redirected references as cache requests. It further includes using a memcached server extension and at least one table or config file that cross references the multiple redirectable function libraries to the canonical function library and redirecting the references to the multiple redirectable function libraries to the canonical function library and processing the redirected references as memcached server requests. In addition, it includes performing the evaluation of the complex web page before a session starts to cache the canonical function libraries and updating the evaluation of the complex web page at the start of a session to update the cache of the canonical function libraries.
In another implementation, a computer-implemented method of improving rendering performance of a browser loaded with web pages in four or more tabs includes evaluating resources used within tabs of a browser loaded with four or more distinct web pages in respective tabs to identify sets of identical redirectable resources that are referenced in multiple distinct instances within the respective tabs. This method further includes mapping redirection of each set of identical resources to a canonical resource, whereby loading the complex web pages includes loading the resource instead of loading the multiple distinct instances of the identical redirectable resource in the respective tabs.
This method and other implementations of the technology disclosed can include one or more of the following features and/or features described in connection with additional methods disclosed. In the interest of conciseness, the combinations of features disclosed in this application are not individually enumerated and are not repeated with each base set of features. The reader will understand how features identified in this section can readily be combined with sets of base features identified.
One disclosed method includes providing a browser extension and a table that cross references the multiple redirectable function libraries in the set to the canonical resources. One method further includes redirecting references to the multiple redirectable resources to the canonical resources and processing the redirected references as web page content.
One method further includes providing a browser cache extension and a table that cross references the multiple redirectable function libraries to the canonical resources. The disclosed method further includes redirecting references the multiple redirectable resources to the canonical resources and processing the redirected references as cache requests.
Other implementations may include a non-transitory computer readable storage medium storing instructions executable by a processor to perform any of the methods described above. Yet other implementations may include a system including memory and one or more processors operable to execute instructions, stored in the memory, to perform any of the methods described above. And, a system built by combining computer hardware with computer readable storage medium storing instructions that, when executed, cause the computer hardware to perform any of the methods described above.
While the present technology is disclosed by reference to the preferred implementations and examples detailed above, it is to be understood that these examples are intended in an illustrative rather than in a limiting sense. It is contemplated that modifications and combinations will readily occur to those skilled in the art, which modifications and combinations will be within the spirit of the technology and the scope of the following claims.

Claims (22)

What is claimed is:
1. A computer-implemented method of improving rendering performance of complex web pages with four or more iFrames, including:
evaluating function libraries for rendering a complex web page including four or more distinct iFrames and that are used within the four or more distinct iFrames on the complex web page;
identifying, from the evaluated function libraries, sets of identical redirectable function libraries that are referenced in multiple distinct instances within at least two iFrames of the four or more distinct iFrames;
mapping a redirection of an identified set of identical redirectable function libraries to a single canonical function library, whereby loading the complex web page includes loading the single canonical function library instead of loading the multiple distinct instances of the identical redirectable function libraries of the identified set in the at least two iFrames of the four or more distinct iFrames;
modifying references to the identified set of the identical redirectable function libraries on the complex web page, wherein the modifying includes prefixing the references to the identical redirectable function libraries of the identified set with a count of a literal “parent.” or a literal “top.” or a reference derived from a “parent.” or “top.” function, in place of a longer URL location of a distinct instance of a function library of the identified set, that redirects the references to the identical redirectable function libraries to a bridging level HTML parent web page; and
providing, on the bridging level HTML parent web page, a reference to the single canonical function library.
2. The method ofclaim 1, further including modifying references to the identified set of the identical redirectable function libraries on the complex web page,
wherein the modifying includes prefixing the references to the identical redirectable function libraries of the identified set with redirection to a bridging level HTML parent web page, and
wherein the bridging level HTML parent web page includes references to the single canonical function library and to the at least two iFrames of the four or more distinct iFrames.
3. The method ofclaim 1, further including providing a browser extension and a table that cross references the identical redirectable function libraries of the identified set to the single canonical function library.
4. The method ofclaim 3, further including:
redirecting references to the identical redirectable function libraries of the identified set to the single canonical function library; and
processing the redirected references as web page content.
5. The method ofclaim 1, further including providing a browser cache extension and a table that cross references the identical redirectable function libraries of the identified set to the single canonical function library.
6. The method ofclaim 5, further including:
redirecting references to the identical redirectable function libraries of the identified set to the single canonical function library; and
processing the redirected references as cache requests.
7. The method ofclaim 1, further including:
using a memcached server extension and at least one table or config file that cross references the identical redirectable function libraries of the identified set to the single canonical function library;
redirecting references to the identical redirectable function libraries of the identified set to the single canonical function library; and
processing the redirected references as memcached server requests.
8. The method ofclaim 1, further including:
performing the evaluation before a session starts to cache the single canonical function library; and
updating the evaluation upon starting the session to update the cache of the single canonical function library.
9. A computer-implemented method of improving rendering performance of complex web pages with four or more iFrames, including:
evaluating resources for rendering a complex web page including four or more distinct iFrames and that are used within the four or more distinct iFrames on the complex web page;
identifying, from the evaluated resources, sets of identical redirectable resources that are referenced in multiple distinct instances within at least two iFrames of the four or more distinct iFrames;
mapping a redirection of an identified set of identical redirectable resources to a single canonical resource, whereby loading the complex web page includes loading the single canonical resource instead of loading the multiple distinct instances of the identical redirectable resources of the identified set in the at least two iFrames of the four or more distinct iFrames;
modifying references to the identified set of the identical redirectable resources on the complex web page, wherein the modifying includes prefixing the references to the identical redirectable resources of the identified set with one or more of a literal “parent.” or a literal “top” or a reference derived from a “parent.” or “top.” function, in place of a longer URL location of a distinct instance of a resource of the identified set and wherein the prefixes redirect the references to the identical redirectable resources to a bridging level HTML parent web page; and
providing, on the bridging level HTML parent web page, a reference to the single canonical resource.
10. The method ofclaim 9, wherein the identical redirectable resources are static resources selected from a group including at least images and cascaded style sheets.
11. An apparatus improving rendering performance of complex web pages with four or more iFrames, comprising:
a computer including a processor;
a memory coupled to the processor, wherein the memory includes computer program instructions causing the computer to implement a process including:
evaluating function libraries for rendering a complex web page including four or more distinct iFrames and that are used within the four or more distinct iFrames on the complex web page;
identifying, from the evaluated function libraries, sets of identical redirectable function libraries that are referenced in multiple distinct instances within at least two iFrames of the four or more distinct iFrames;
mapping a redirection of an identified set of identical redirectable function libraries to a single canonical function library, whereby loading the complex web page includes loading the single canonical function library instead of loading the multiple distinct instances of the identical redirectable function libraries of the identified set in the at least two iFrames of the four or more distinct iFrames;
modifying references to the identified set of the identical redirectable function libraries on the complex web page, wherein the modifying includes prefixing the references to the identical redirectable function libraries of the identified set with one or more of a literal “parent.” or a literal “top” or a reference derived from a “parent.” or “top.” function, in place of a longer URL location of a distinct instance of a resource of the identified set and wherein the prefixes redirect the references to the identical redirectable function libraries to a bridging level HTML parent web page; and
providing, on the bridging level HTML parent web page, a reference to the single canonical function library.
12. The apparatus ofclaim 11, further including computer program instructions causing the computer to implement a process including modifying references to the identified set of the identical redirectable function libraries on the complex web page,
wherein the modifying includes prefixing the references to the identical redirectable function libraries of the identified set with redirection to a bridging level HTML parent web page, and
wherein the bridging level HTML parent web page includes references to the single canonical function library and to the at least two iFrames of the four or more distinct iFrames.
13. The apparatus ofclaim 11, further including computer program instructions causing the computer to implement a process including providing a browser extension and a table that cross references the identical redirectable function libraries of the identified set to the single canonical function library.
14. The apparatus ofclaim 13, further including:
redirecting references to the identical redirectable function libraries of the identified set to the single canonical function library; and
processing the redirected references as web page content.
15. The apparatus ofclaim 11, further including computer program instructions causing the computer to implement a process including providing a browser cache extension and a table that cross references the identical redirectable function libraries of the identified set to the single canonical function library.
16. The apparatus ofclaim 11, further including computer program instructions causing the computer to implement a process including:
using a memcached server extension and at least one table or config file that cross references the identical redirectable function libraries of the identified set to the single canonical function library;
redirecting references to the identical redirectable function libraries of the identified set to the single canonical function library; and
processing the redirected references as memcached server requests.
17. The apparatus ofclaim 11, further including computer program instructions causing the computer to implement a process including:
performing the evaluation before a session starts to cache the single canonical function library; and
updating the evaluation upon starting the session to update the cache of the single canonical function library.
18. A computer-implemented method of improving rendering performance of a browser loaded with web pages in four or more distinct tabs, including:
evaluating resources for rendering four or more distinct web pages in the four or more distinct tabs of the browser and that are used in the four or more distinct web pages;
identifying, from the evaluated resources, sets of identical redirectable resources that are referenced in multiple distinct instances within at least two tabs of the four or more tabs;
mapping a redirection of an identified set of identical redirectable resources to a single canonical resource, whereby loading the four or more distinct web pages includes loading the single canonical resource instead of loading the multiple distinct instances of the identical redirectable resources of the identified set in the at least two tabs of the four or more distinct tabs;
modifying references to the identified set of the identical redirectable resources on the four or more distinct web pages, wherein the modifying includes prefixing the references to the identical redirectable resources of the identified set with one or more of a literal “parent.” or a literal “top” or a reference derived from a “parent.” or “top.” function, in place of a longer URL location of a distinct instance of a resource of the identified set and wherein the prefixes redirect the references to the identical redirectable resources to a bridging level HTML parent web page; and
providing, on the bridging level HTML parent web page, a reference to the single canonical resource.
19. The method ofclaim 18, further including providing a browser extension and a table that cross references the identical redirectable resources of the identified set to the single canonical resource.
20. The method ofclaim 19, further including:
redirecting references to the identical redirectable resources of the identified set to the single canonical resource; and
processing the redirected references as web page content.
21. The method ofclaim 18, further including providing a browser cache extension and a table that cross references the identical redirectable resources of the identified set to the single canonical resource.
22. The method ofclaim 21, further including:
redirecting references to the identical redirectable resources of the identified set to the single canonical resource; and
processing the redirected references as cache requests.
US14/512,2052014-10-102014-10-10Systems and methods for optimizing web page load timeActive2035-11-04US9756110B2 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
US14/512,205US9756110B2 (en)2014-10-102014-10-10Systems and methods for optimizing web page load time

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
US14/512,205US9756110B2 (en)2014-10-102014-10-10Systems and methods for optimizing web page load time

Publications (2)

Publication NumberPublication Date
US20160103803A1 US20160103803A1 (en)2016-04-14
US9756110B2true US9756110B2 (en)2017-09-05

Family

ID=55655553

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US14/512,205Active2035-11-04US9756110B2 (en)2014-10-102014-10-10Systems and methods for optimizing web page load time

Country Status (1)

CountryLink
US (1)US9756110B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20180024816A1 (en)*2016-07-202018-01-25Microsoft Technology Licensing, LlcCode snippet content recommendation to define an object literal

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US10051029B1 (en)*2014-10-272018-08-14Google LlcPublisher specified load time thresholds for online content items
US11843679B2 (en)*2015-07-272023-12-12Wp Company LlcAutomated dependency management based on page components
US11138894B1 (en)2016-09-212021-10-05Workday, Inc.Educational learning importation
US10521424B1 (en)*2016-09-212019-12-31Workday, Inc.Educational learning searching using personalized relevance scoring
US10404765B2 (en)2016-11-012019-09-03Microsoft Technology Licensing, LlcRe-homing embedded web content via cross-iframe signaling
CN107229526B (en)2017-05-172019-03-01腾讯科技(深圳)有限公司Message treatment method, device, storage medium and computer equipment in group session
CN107992557A (en)*2017-11-282018-05-04平安养老保险股份有限公司Static resource update method, device, storage medium and computer equipment
US11443264B2 (en)2020-01-292022-09-13Accenture Global Solutions LimitedAgnostic augmentation of a customer relationship management application
US11392960B2 (en)*2020-04-242022-07-19Accenture Global Solutions LimitedAgnostic customer relationship management with agent hub and browser overlay
US11481785B2 (en)2020-04-242022-10-25Accenture Global Solutions LimitedAgnostic customer relationship management with browser overlay and campaign management portal
CN112153375B (en)*2020-09-252023-09-15深圳平安智慧医健科技有限公司Front-end performance testing method, device, equipment and medium based on video information
CN114139097A (en)*2021-12-072022-03-04航天信息股份有限公司Webpage loading method and device
CN115145778B (en)*2022-09-022022-11-25西安芯瞳半导体技术有限公司Method and device for analyzing rendering result of display card and storage medium

Citations (137)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5577188A (en)1994-05-311996-11-19Future Labs, Inc.Method to provide for virtual screen overlay
US5608872A (en)1993-03-191997-03-04Ncr CorporationSystem for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
US5649104A (en)1993-03-191997-07-15Ncr CorporationSystem for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US5715450A (en)1995-09-271998-02-03Siebel Systems, Inc.Method of selecting and presenting data from a database using a query language to a user of a computer system
US5821937A (en)1996-02-231998-10-13Netsuite Development, L.P.Computer method for updating a network design
US5831610A (en)1996-02-231998-11-03Netsuite Development L.P.Designing networks
US5873096A (en)1997-10-081999-02-16Siebel Systems, Inc.Method of maintaining a network of partially replicated database system
US5918159A (en)1997-08-041999-06-29Fomukong; MundiLocation reporting satellite paging system with optional blocking of location reporting
US5963953A (en)1998-03-301999-10-05Siebel Systems, Inc.Method, and system for product configuration
US6092083A (en)1997-02-262000-07-18Siebel Systems, Inc.Database management system which synchronizes an enterprise server and a workgroup user client using a docking agent
US6161149A (en)1998-03-132000-12-12Groupserve, Inc.Centrifugal communication and collaboration method
US6169534B1 (en)1997-06-262001-01-02Upshot.ComGraphical user interface for customer information management
US6178425B1 (en)1997-02-262001-01-23Siebel Systems, Inc.Method of determining the visibility to a remote database client of a plurality of database transactions using simplified visibility rules
US6216135B1 (en)1997-02-262001-04-10Siebel Systems, Inc.Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths
US6233617B1 (en)1997-02-262001-05-15Siebel Systems, Inc.Determining the visibility to a remote database client
US6266669B1 (en)1997-02-282001-07-24Siebel Systems, Inc.Partially replicated distributed database with multiple levels of remote clients
US6295530B1 (en)1995-05-152001-09-25Andrew M. RitchieInternet service of differently formatted viewable data signals including commands for browser execution
US20010044791A1 (en)2000-04-142001-11-22Richter James NealAutomated adaptive classification system for bayesian knowledge networks
US6324568B1 (en)1999-11-302001-11-27Siebel Systems, Inc.Method and system for distributing objects over a network
US6324693B1 (en)1997-03-122001-11-27Siebel Systems, Inc.Method of synchronizing independently distributed software and database schema
US6336137B1 (en)2000-03-312002-01-01Siebel Systems, Inc.Web client-server system and method for incompatible page markup and presentation languages
USD454139S1 (en)2001-02-202002-03-05Rightnow TechnologiesDisplay screen for a computer
US6367077B1 (en)1997-02-272002-04-02Siebel Systems, Inc.Method of upgrading a software application in the presence of user modifications
US6393605B1 (en)1998-11-182002-05-21Siebel Systems, Inc.Apparatus and system for efficient delivery and deployment of an application
US20020072951A1 (en)1999-03-032002-06-13Michael LeeMarketing support database management method, system and program product
US20020082892A1 (en)1998-08-272002-06-27Keith RaffelMethod and apparatus for network-based sales force management
US6434550B1 (en)2000-04-142002-08-13Rightnow Technologies, Inc.Temporal updates of relevancy rating of retrieved information in an information search system
US6446089B1 (en)1997-02-262002-09-03Siebel Systems, Inc.Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions
US20020140731A1 (en)2001-03-282002-10-03Pavitra SubramaniamEngine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site
US20020143997A1 (en)2001-03-282002-10-03Xiaofei HuangMethod and system for direct server synchronization with a computing device
US20020162090A1 (en)2001-04-302002-10-31Parnell Karen P.Polylingual simultaneous shipping of software
US20020165742A1 (en)2000-03-312002-11-07Mark RobinsFeature centric release manager method and system
US20030004971A1 (en)2001-06-292003-01-02Gong Wen G.Automatic generation of data models and accompanying user interfaces
US20030018830A1 (en)2001-02-062003-01-23Mingte ChenAdaptive communication application programming interface
US20030018705A1 (en)2001-03-312003-01-23Mingte ChenMedia-independent communication server
US6535909B1 (en)1999-11-182003-03-18Contigo Software, Inc.System and method for record and playback of collaborative Web browsing session
US20030066032A1 (en)2001-09-282003-04-03Siebel Systems,Inc.System and method for facilitating user interaction in a browser environment
US20030066031A1 (en)2001-09-282003-04-03Siebel Systems, Inc.Method and system for supporting user navigation in a browser environment
US20030070005A1 (en)2001-09-292003-04-10Anil MukundanMethod, apparatus, and system for implementing view caching in a framework to support web-based applications
US20030069936A1 (en)2001-10-092003-04-10Warner Douglas K.Method for routing electronic correspondence based on the level and type of emotion contained therein
US20030070000A1 (en)2001-09-292003-04-10John CokerComputing system and method to implicitly commit unsaved data for a World Wide Web application
US20030070004A1 (en)2001-09-292003-04-10Anil MukundanMethod, apparatus, and system for implementing a framework to support a web-based application
US20030074418A1 (en)2001-09-292003-04-17John CokerMethod, apparatus and system for a mobile web client
US6553563B2 (en)1998-11-302003-04-22Siebel Systems, Inc.Development tool, method, and system for client server applications
US6560461B1 (en)1997-08-042003-05-06Mundi FomukongAuthorized location reporting paging system
US6574635B2 (en)1999-03-032003-06-03Siebel Systems, Inc.Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components
US6577726B1 (en)2000-03-312003-06-10Siebel Systems, Inc.Computer telephony integration hotelling method and system
US6601087B1 (en)1998-11-182003-07-29Webex Communications, Inc.Instant document sharing
US6604117B2 (en)1996-03-192003-08-05Siebel Systems, Inc.Method of maintaining a network of partially replicated database system
US20030151633A1 (en)2002-02-132003-08-14David GeorgeMethod and system for enabling connectivity to a data system
US20030159136A1 (en)2001-09-282003-08-21Huang Xiao FeiMethod and system for server synchronization with a computing device
US6621834B1 (en)1999-11-052003-09-16Raindance Communications, Inc.System and method for voice transmission over network protocols
US20030189600A1 (en)2002-03-292003-10-09Prasad GuneDefining an approval process for requests for approval
US20030204427A1 (en)2002-03-292003-10-30Prasad GuneUser interface for processing requests for approval
US20030206192A1 (en)2001-03-312003-11-06Mingte ChenAsynchronous message push to web browser
US6654032B1 (en)1999-12-232003-11-25Webex Communications, Inc.Instant sharing of documents on a remote server
US20030225730A1 (en)2002-06-032003-12-04Rightnow Technologies, Inc.System and method for generating a dynamic interface via a communications network
US6665648B2 (en)1998-11-302003-12-16Siebel Systems, Inc.State models for monitoring process
US6665655B1 (en)2000-04-142003-12-16Rightnow Technologies, Inc.Implicit rating of retrieved information in an information search system
US20040001092A1 (en)2002-06-272004-01-01Rothwein Thomas M.Prototyping graphical user interfaces
US20040010489A1 (en)2002-07-122004-01-15Rightnow Technologies, Inc.Method for providing search-specific web pages in a network computing environment
US20040015981A1 (en)2002-06-272004-01-22Coker John L.Efficient high-interactivity user interface for client-server applications
US20040027388A1 (en)2002-06-272004-02-12Eric BergMethod and apparatus to facilitate development of a customer-specific business process model
US6711565B1 (en)2001-06-182004-03-23Siebel Systems, Inc.Method, apparatus, and system for previewing search results
US6724399B1 (en)2001-09-282004-04-20Siebel Systems, Inc.Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser
US6728702B1 (en)2001-06-182004-04-27Siebel Systems, Inc.System and method to implement an integrated search center supporting a full-text search and query on a database
US6728960B1 (en)1998-11-182004-04-27Siebel Systems, Inc.Techniques for managing multiple threads in a browser environment
US6732100B1 (en)2000-03-312004-05-04Siebel Systems, Inc.Database access method and system for user role defined access
US6732095B1 (en)2001-04-132004-05-04Siebel Systems, Inc.Method and apparatus for mapping between XML and relational representations
US6732111B2 (en)1998-03-032004-05-04Siebel Systems, Inc.Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
US20040128001A1 (en)2002-08-282004-07-01Levin Issac StephenMethod and apparatus for an integrated process modeller
US6763501B1 (en)2000-06-092004-07-13Webex Communications, Inc.Remote document serving
US6763351B1 (en)2001-06-182004-07-13Siebel Systems, Inc.Method, apparatus, and system for attaching search results
US6768904B2 (en)2000-10-112004-07-27Lg Electronics Inc.Data communication method using mobile terminal
US6772229B1 (en)2000-11-132004-08-03Groupserve, Inc.Centrifugal communication and collaboration method
US6782383B2 (en)2001-06-182004-08-24Siebel Systems, Inc.System and method to implement a persistent and dismissible search center frame
US20040186860A1 (en)2003-03-212004-09-23Wen-Hsin LeeMethod and architecture for providing data-change alerts to external applications via a push service
US20040193510A1 (en)2003-03-252004-09-30Catahan Nardo B.Modeling of order data
US20040199489A1 (en)2003-03-242004-10-07Barnes-Leon Maria TheresaCustom common object
US20040199543A1 (en)2003-04-042004-10-07Braud Luke A.Facilitating data manipulation in a browser-based user interface of an enterprise business application
US20040199536A1 (en)2003-03-242004-10-07Barnes Leon Maria TheresaProduct common object
US6804330B1 (en)2002-01-042004-10-12Siebel Systems, Inc.Method and system for accessing CRM data via voice
US6826582B1 (en)2001-09-282004-11-30Emc CorporationMethod and system for using file systems for content management
US6826745B2 (en)1998-11-302004-11-30Siebel Systems, Inc.System and method for smart scripting call centers and configuration thereof
US6829655B1 (en)2001-03-282004-12-07Siebel Systems, Inc.Method and system for server synchronization with a computing device via a companion device
US20040249854A1 (en)2003-03-242004-12-09Barnes-Leon Maria TheresaCommon common object
US20040260659A1 (en)2003-06-232004-12-23Len ChanFunction space reservation system
US20040260534A1 (en)2003-06-192004-12-23Pak Wai H.Intelligent data search
US20040268299A1 (en)2003-06-302004-12-30Shu LeiApplication user interface template with free-form layout
US6842748B1 (en)2000-04-142005-01-11Rightnow Technologies, Inc.Usage based strength between related information in an information retrieval system
US6850895B2 (en)1998-11-302005-02-01Siebel Systems, Inc.Assignment manager
US20050050555A1 (en)2003-08-282005-03-03Exley Richard MarkUniversal application network architecture
US20060021019A1 (en)2004-07-212006-01-26International Business Machines CorporationMethod and system for federated provisioning
US7062502B1 (en)2001-12-282006-06-13Kesler John NAutomated generation of dynamic data entry user interface for relational database management systems
US7069231B1 (en)2000-07-202006-06-27Oracle International CorporationMethods and systems for defining, applying and executing customer care relationship plans
US7069497B1 (en)2002-09-102006-06-27Oracle International Corp.System and method for applying a partial page change
US7181758B1 (en)1994-07-252007-02-20Data Innovation, L.L.C.Information distribution and processing system
US7289976B2 (en)2004-12-232007-10-30Microsoft CorporationEasy-to-use data report specification
US20070299857A1 (en)*2006-06-232007-12-27Microsoft CorporationCross Domain Communication
US7340411B2 (en)1998-02-262008-03-04Cook Rachael LSystem and method for generating, capturing, and managing customer lead information over a computer network
US7356482B2 (en)1998-12-182008-04-08Alternative Systems, Inc.Integrated change management unit
US7412455B2 (en)2003-04-302008-08-12Dillon David MSoftware framework that facilitates design and implementation of database applications
US20090063415A1 (en)2007-08-312009-03-05Business Objects, S.A.Apparatus and method for dynamically selecting componentized executable instructions at run time
US7508789B2 (en)1994-04-072009-03-24Data Innovation LlcInformation distribution and processing system
US20090100342A1 (en)2007-10-122009-04-16Gabriel JakobsonMethod and system for presenting address and mapping information
US20090177744A1 (en)2008-01-042009-07-09Yahoo! Inc.Identifying and employing social network relationships
US7603483B2 (en)2001-03-232009-10-13Cisco Technology, Inc.Method and system for class-based management of dynamic content in a networked environment
US7620655B2 (en)2003-05-072009-11-17Enecto AbMethod, device and computer program product for identifying visitors of websites
US20100005048A1 (en)*2008-07-072010-01-07Chandra BodapatiDetecting duplicate records
US7698160B2 (en)1999-05-072010-04-13Virtualagility, IncSystem for performing collaborative tasks
US7779475B2 (en)2006-07-312010-08-17Petnote LlcSoftware-based method for gaining privacy by affecting the screen of a computing device
US7851004B2 (en)2001-07-192010-12-14San-Ei Gen F.F.I., Inc.Taste-improving composition and application of the same
US20110082829A1 (en)*2009-10-062011-04-07Oracle International Corporation hybrid approach for equivalence reasoning
US8014943B2 (en)2008-05-082011-09-06Gabriel JakobsonMethod and system for displaying social networking navigation information
US20110218958A1 (en)2010-03-082011-09-08Salesforce.Com, Inc.System, method and computer program product for performing one or more actions utilizing a uniform resource locator
US8032297B2 (en)2008-05-082011-10-04Gabriel JakobsonMethod and system for displaying navigation information on an electronic map
US20110247051A1 (en)2010-04-012011-10-06Salesforce.Com, Inc.System, method and computer program product for performing one or more actions based on a determined access permissions for a plurality of users
US8073850B1 (en)2007-01-192011-12-06Wordnetworks, Inc.Selecting key phrases for serving contextually relevant content
US8082301B2 (en)2006-11-102011-12-20Virtual Agility, Inc.System for supporting collaborative activity
US8095413B1 (en)1999-05-072012-01-10VirtualAgility, Inc.Processing management information
US20120042218A1 (en)2010-08-132012-02-16Salesforce.Com, Inc.Debugging site errors by an admin as a guest user in a multi-tenant database environment
US8209308B2 (en)2006-05-012012-06-26Rueben Steven LMethod for presentation of revisions of an electronic document
US20120233137A1 (en)2006-05-012012-09-13Gabriel JakobsonPresentation of document history in a web browsing application
US8490025B2 (en)2008-02-012013-07-16Gabriel JakobsonDisplaying content associated with electronic mapping systems
US8504945B2 (en)2008-02-012013-08-06Gabriel JakobsonMethod and system for associating content with map zoom function
US8510664B2 (en)2008-09-062013-08-13Steven L. RuebenMethod and system for displaying email thread information
US8510045B2 (en)2009-12-222013-08-13Steven L. RuebenDigital maps displaying search-resulting points-of-interest in user delimited regions
US20130212497A1 (en)2012-02-102013-08-15Liveperson, Inc.Analytics driven engagement
US20130247216A1 (en)2008-11-032013-09-19Salesforce.Com, IncSystem, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service
US8566301B2 (en)2006-05-012013-10-22Steven L. RuebenDocument revisions in a collaborative computing environment
US20130290645A1 (en)*2011-12-072013-10-31Intel CorporationTechniques to prelink software to improve memory de-duplication in a virtual system
US8646103B2 (en)2008-06-302014-02-04Gabriel JakobsonMethod and system for securing online identities
US20140108667A1 (en)*2012-10-152014-04-17Dell Products L.P.Techniques for Generating Different Sessions for Multiple Tabs of a Single Browser Window
US8756275B2 (en)2012-02-172014-06-17ZebedoVariable speed collaborative web browsing system
US8769004B2 (en)2012-02-172014-07-01ZebedoCollaborative web browsing system integrated with social networks
US8769017B2 (en)2012-02-172014-07-01ZebedoCollaborative web browsing system having document object model element interaction detection
US20160191598A1 (en)*2014-08-042016-06-30Likqid Media, Inc.System and methods that enable embedding, streaming, and displaying video advertisements and content on internet webpages accessed via mobile devices

Patent Citations (161)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5608872A (en)1993-03-191997-03-04Ncr CorporationSystem for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
US5649104A (en)1993-03-191997-07-15Ncr CorporationSystem for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US5761419A (en)1993-03-191998-06-02Ncr CorporationRemote collaboration system including first program means translating user inputs into annotations and running on all computers while second program means runs on one computer
US5819038A (en)1993-03-191998-10-06Ncr CorporationCollaboration system for producing copies of image generated by first program on first computer on other computers and annotating the image by second program
US7508789B2 (en)1994-04-072009-03-24Data Innovation LlcInformation distribution and processing system
US8457545B2 (en)1994-04-072013-06-04Online News Link LlcInformation distribution and processing system
US5577188A (en)1994-05-311996-11-19Future Labs, Inc.Method to provide for virtual screen overlay
US7181758B1 (en)1994-07-252007-02-20Data Innovation, L.L.C.Information distribution and processing system
US6826565B2 (en)1995-05-152004-11-30Ablaise LimitedMethod and apparatus for serving files to browsing clients
US6295530B1 (en)1995-05-152001-09-25Andrew M. RitchieInternet service of differently formatted viewable data signals including commands for browser execution
US5715450A (en)1995-09-271998-02-03Siebel Systems, Inc.Method of selecting and presenting data from a database using a query language to a user of a computer system
US5821937A (en)1996-02-231998-10-13Netsuite Development, L.P.Computer method for updating a network design
US5831610A (en)1996-02-231998-11-03Netsuite Development L.P.Designing networks
US6189011B1 (en)1996-03-192001-02-13Siebel Systems, Inc.Method of maintaining a network of partially replicated database system
US6604117B2 (en)1996-03-192003-08-05Siebel Systems, Inc.Method of maintaining a network of partially replicated database system
US6178425B1 (en)1997-02-262001-01-23Siebel Systems, Inc.Method of determining the visibility to a remote database client of a plurality of database transactions using simplified visibility rules
US6216135B1 (en)1997-02-262001-04-10Siebel Systems, Inc.Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths
US6233617B1 (en)1997-02-262001-05-15Siebel Systems, Inc.Determining the visibility to a remote database client
US6446089B1 (en)1997-02-262002-09-03Siebel Systems, Inc.Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions
US6092083A (en)1997-02-262000-07-18Siebel Systems, Inc.Database management system which synchronizes an enterprise server and a workgroup user client using a docking agent
US6684438B2 (en)1997-02-262004-02-03Siebel Systems, Inc.Method of using cache to determine the visibility to a remote database client of a plurality of database transactions
US20020129352A1 (en)1997-02-272002-09-12Brodersen Robert A.Method and apparatus for upgrading a software application in the presence of user modifications
US6367077B1 (en)1997-02-272002-04-02Siebel Systems, Inc.Method of upgrading a software application in the presence of user modifications
US6405220B1 (en)1997-02-282002-06-11Siebel Systems, Inc.Partially replicated distributed database with multiple levels of remote clients
US6754681B2 (en)1997-02-282004-06-22Siebel Systems, Inc.Partially replicated distributed database with multiple levels of remote clients
US6266669B1 (en)1997-02-282001-07-24Siebel Systems, Inc.Partially replicated distributed database with multiple levels of remote clients
US6324693B1 (en)1997-03-122001-11-27Siebel Systems, Inc.Method of synchronizing independently distributed software and database schema
US6169534B1 (en)1997-06-262001-01-02Upshot.ComGraphical user interface for customer information management
US6560461B1 (en)1997-08-042003-05-06Mundi FomukongAuthorized location reporting paging system
US5918159A (en)1997-08-041999-06-29Fomukong; MundiLocation reporting satellite paging system with optional blocking of location reporting
US5873096A (en)1997-10-081999-02-16Siebel Systems, Inc.Method of maintaining a network of partially replicated database system
US7340411B2 (en)1998-02-262008-03-04Cook Rachael LSystem and method for generating, capturing, and managing customer lead information over a computer network
US6732111B2 (en)1998-03-032004-05-04Siebel Systems, Inc.Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
US6161149A (en)1998-03-132000-12-12Groupserve, Inc.Centrifugal communication and collaboration method
US8015495B2 (en)1998-03-132011-09-06Groupserve It Trust LlcCentrifugal communication and collaboration method
US5963953A (en)1998-03-301999-10-05Siebel Systems, Inc.Method, and system for product configuration
US20020082892A1 (en)1998-08-272002-06-27Keith RaffelMethod and apparatus for network-based sales force management
US6728960B1 (en)1998-11-182004-04-27Siebel Systems, Inc.Techniques for managing multiple threads in a browser environment
US6393605B1 (en)1998-11-182002-05-21Siebel Systems, Inc.Apparatus and system for efficient delivery and deployment of an application
US6601087B1 (en)1998-11-182003-07-29Webex Communications, Inc.Instant document sharing
US6549908B1 (en)1998-11-182003-04-15Siebel Systems, Inc.Methods and apparatus for interpreting user selections in the context of a relation distributed as a set of orthogonalized sub-relations
US6665648B2 (en)1998-11-302003-12-16Siebel Systems, Inc.State models for monitoring process
US6850895B2 (en)1998-11-302005-02-01Siebel Systems, Inc.Assignment manager
US6826745B2 (en)1998-11-302004-11-30Siebel Systems, Inc.System and method for smart scripting call centers and configuration thereof
US20050091098A1 (en)1998-11-302005-04-28Siebel Systems, Inc.Assignment manager
US6553563B2 (en)1998-11-302003-04-22Siebel Systems, Inc.Development tool, method, and system for client server applications
US7356482B2 (en)1998-12-182008-04-08Alternative Systems, Inc.Integrated change management unit
US8484111B2 (en)1998-12-182013-07-09Applications In Internet Time, LlcIntegrated change management unit
US20020072951A1 (en)1999-03-032002-06-13Michael LeeMarketing support database management method, system and program product
US6574635B2 (en)1999-03-032003-06-03Siebel Systems, Inc.Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components
US20030120675A1 (en)1999-03-032003-06-26Siebel Systems, Inc.Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers, objects, and components
US7698160B2 (en)1999-05-072010-04-13Virtualagility, IncSystem for performing collaborative tasks
US8275836B2 (en)1999-05-072012-09-25Virtualagility Inc.System and method for supporting collaborative activity
US8095413B1 (en)1999-05-072012-01-10VirtualAgility, Inc.Processing management information
US8095594B2 (en)1999-05-072012-01-10VirtualAgility, Inc.System for performing collaborative tasks
US6621834B1 (en)1999-11-052003-09-16Raindance Communications, Inc.System and method for voice transmission over network protocols
US6535909B1 (en)1999-11-182003-03-18Contigo Software, Inc.System and method for record and playback of collaborative Web browsing session
US20030187921A1 (en)1999-11-302003-10-02Siebel Systems, Inc.Method and system for distributing objects over a network
US6604128B2 (en)1999-11-302003-08-05Siebel Systems, Inc.Method and system for distributing objects over a network
US6324568B1 (en)1999-11-302001-11-27Siebel Systems, Inc.Method and system for distributing objects over a network
US6654032B1 (en)1999-12-232003-11-25Webex Communications, Inc.Instant sharing of documents on a remote server
US20020165742A1 (en)2000-03-312002-11-07Mark RobinsFeature centric release manager method and system
US6732100B1 (en)2000-03-312004-05-04Siebel Systems, Inc.Database access method and system for user role defined access
US6336137B1 (en)2000-03-312002-01-01Siebel Systems, Inc.Web client-server system and method for incompatible page markup and presentation languages
US6609150B2 (en)2000-03-312003-08-19Siebel Systems, Inc.Web client-server system and method for incompatible page markup and presentation languages
US6577726B1 (en)2000-03-312003-06-10Siebel Systems, Inc.Computer telephony integration hotelling method and system
US20010044791A1 (en)2000-04-142001-11-22Richter James NealAutomated adaptive classification system for bayesian knowledge networks
US6665655B1 (en)2000-04-142003-12-16Rightnow Technologies, Inc.Implicit rating of retrieved information in an information search system
US6842748B1 (en)2000-04-142005-01-11Rightnow Technologies, Inc.Usage based strength between related information in an information retrieval system
US6434550B1 (en)2000-04-142002-08-13Rightnow Technologies, Inc.Temporal updates of relevancy rating of retrieved information in an information search system
US6763501B1 (en)2000-06-092004-07-13Webex Communications, Inc.Remote document serving
US7069231B1 (en)2000-07-202006-06-27Oracle International CorporationMethods and systems for defining, applying and executing customer care relationship plans
US6768904B2 (en)2000-10-112004-07-27Lg Electronics Inc.Data communication method using mobile terminal
US6772229B1 (en)2000-11-132004-08-03Groupserve, Inc.Centrifugal communication and collaboration method
US20030018830A1 (en)2001-02-062003-01-23Mingte ChenAdaptive communication application programming interface
USD454139S1 (en)2001-02-202002-03-05Rightnow TechnologiesDisplay screen for a computer
US7603483B2 (en)2001-03-232009-10-13Cisco Technology, Inc.Method and system for class-based management of dynamic content in a networked environment
US6829655B1 (en)2001-03-282004-12-07Siebel Systems, Inc.Method and system for server synchronization with a computing device via a companion device
US20020140731A1 (en)2001-03-282002-10-03Pavitra SubramaniamEngine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site
US20020143997A1 (en)2001-03-282002-10-03Xiaofei HuangMethod and system for direct server synchronization with a computing device
US20030018705A1 (en)2001-03-312003-01-23Mingte ChenMedia-independent communication server
US20030206192A1 (en)2001-03-312003-11-06Mingte ChenAsynchronous message push to web browser
US6732095B1 (en)2001-04-132004-05-04Siebel Systems, Inc.Method and apparatus for mapping between XML and relational representations
US20020162090A1 (en)2001-04-302002-10-31Parnell Karen P.Polylingual simultaneous shipping of software
US6782383B2 (en)2001-06-182004-08-24Siebel Systems, Inc.System and method to implement a persistent and dismissible search center frame
US6711565B1 (en)2001-06-182004-03-23Siebel Systems, Inc.Method, apparatus, and system for previewing search results
US6763351B1 (en)2001-06-182004-07-13Siebel Systems, Inc.Method, apparatus, and system for attaching search results
US6728702B1 (en)2001-06-182004-04-27Siebel Systems, Inc.System and method to implement an integrated search center supporting a full-text search and query on a database
US20030004971A1 (en)2001-06-292003-01-02Gong Wen G.Automatic generation of data models and accompanying user interfaces
US7851004B2 (en)2001-07-192010-12-14San-Ei Gen F.F.I., Inc.Taste-improving composition and application of the same
US6724399B1 (en)2001-09-282004-04-20Siebel Systems, Inc.Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser
US20030066032A1 (en)2001-09-282003-04-03Siebel Systems,Inc.System and method for facilitating user interaction in a browser environment
US20030159136A1 (en)2001-09-282003-08-21Huang Xiao FeiMethod and system for server synchronization with a computing device
US20030066031A1 (en)2001-09-282003-04-03Siebel Systems, Inc.Method and system for supporting user navigation in a browser environment
US6826582B1 (en)2001-09-282004-11-30Emc CorporationMethod and system for using file systems for content management
US20030074418A1 (en)2001-09-292003-04-17John CokerMethod, apparatus and system for a mobile web client
US20030070004A1 (en)2001-09-292003-04-10Anil MukundanMethod, apparatus, and system for implementing a framework to support a web-based application
US20030070005A1 (en)2001-09-292003-04-10Anil MukundanMethod, apparatus, and system for implementing view caching in a framework to support web-based applications
US20030070000A1 (en)2001-09-292003-04-10John CokerComputing system and method to implicitly commit unsaved data for a World Wide Web application
US20030069936A1 (en)2001-10-092003-04-10Warner Douglas K.Method for routing electronic correspondence based on the level and type of emotion contained therein
US7062502B1 (en)2001-12-282006-06-13Kesler John NAutomated generation of dynamic data entry user interface for relational database management systems
US7401094B1 (en)2001-12-282008-07-15Kesler John NAutomated generation of dynamic data entry user interface for relational database management systems
US6804330B1 (en)2002-01-042004-10-12Siebel Systems, Inc.Method and system for accessing CRM data via voice
US20030151633A1 (en)2002-02-132003-08-14David GeorgeMethod and system for enabling connectivity to a data system
US20030189600A1 (en)2002-03-292003-10-09Prasad GuneDefining an approval process for requests for approval
US20030204427A1 (en)2002-03-292003-10-30Prasad GuneUser interface for processing requests for approval
US20030225730A1 (en)2002-06-032003-12-04Rightnow Technologies, Inc.System and method for generating a dynamic interface via a communications network
US6850949B2 (en)2002-06-032005-02-01Right Now Technologies, Inc.System and method for generating a dynamic interface via a communications network
US20040001092A1 (en)2002-06-272004-01-01Rothwein Thomas M.Prototyping graphical user interfaces
US20040015981A1 (en)2002-06-272004-01-22Coker John L.Efficient high-interactivity user interface for client-server applications
US20040027388A1 (en)2002-06-272004-02-12Eric BergMethod and apparatus to facilitate development of a customer-specific business process model
US20040010489A1 (en)2002-07-122004-01-15Rightnow Technologies, Inc.Method for providing search-specific web pages in a network computing environment
US20040128001A1 (en)2002-08-282004-07-01Levin Issac StephenMethod and apparatus for an integrated process modeller
US7069497B1 (en)2002-09-102006-06-27Oracle International Corp.System and method for applying a partial page change
US20040186860A1 (en)2003-03-212004-09-23Wen-Hsin LeeMethod and architecture for providing data-change alerts to external applications via a push service
US20040199536A1 (en)2003-03-242004-10-07Barnes Leon Maria TheresaProduct common object
US20040199489A1 (en)2003-03-242004-10-07Barnes-Leon Maria TheresaCustom common object
US20040249854A1 (en)2003-03-242004-12-09Barnes-Leon Maria TheresaCommon common object
US20040193510A1 (en)2003-03-252004-09-30Catahan Nardo B.Modeling of order data
US20040199543A1 (en)2003-04-042004-10-07Braud Luke A.Facilitating data manipulation in a browser-based user interface of an enterprise business application
US7412455B2 (en)2003-04-302008-08-12Dillon David MSoftware framework that facilitates design and implementation of database applications
US20080249972A1 (en)2003-04-302008-10-09Dillon David MSoftware framework that facilitates design and implementation of database applications
US7620655B2 (en)2003-05-072009-11-17Enecto AbMethod, device and computer program product for identifying visitors of websites
US20040260534A1 (en)2003-06-192004-12-23Pak Wai H.Intelligent data search
US20040260659A1 (en)2003-06-232004-12-23Len ChanFunction space reservation system
US20040268299A1 (en)2003-06-302004-12-30Shu LeiApplication user interface template with free-form layout
US20050050555A1 (en)2003-08-282005-03-03Exley Richard MarkUniversal application network architecture
US20060021019A1 (en)2004-07-212006-01-26International Business Machines CorporationMethod and system for federated provisioning
US7289976B2 (en)2004-12-232007-10-30Microsoft CorporationEasy-to-use data report specification
US20120233137A1 (en)2006-05-012012-09-13Gabriel JakobsonPresentation of document history in a web browsing application
US8566301B2 (en)2006-05-012013-10-22Steven L. RuebenDocument revisions in a collaborative computing environment
US8209308B2 (en)2006-05-012012-06-26Rueben Steven LMethod for presentation of revisions of an electronic document
US20070299857A1 (en)*2006-06-232007-12-27Microsoft CorporationCross Domain Communication
US7779475B2 (en)2006-07-312010-08-17Petnote LlcSoftware-based method for gaining privacy by affecting the screen of a computing device
US8082301B2 (en)2006-11-102011-12-20Virtual Agility, Inc.System for supporting collaborative activity
US20120290407A1 (en)2007-01-192012-11-15Hubbard Sid JaSelection of keyword phrases for providing contextually relevant content to users
US8073850B1 (en)2007-01-192011-12-06Wordnetworks, Inc.Selecting key phrases for serving contextually relevant content
US8209333B2 (en)2007-01-192012-06-26Wordnetworks, Inc.System for using keyword phrases on a page to provide contextually relevant content to users
US20090063415A1 (en)2007-08-312009-03-05Business Objects, S.A.Apparatus and method for dynamically selecting componentized executable instructions at run time
US20090100342A1 (en)2007-10-122009-04-16Gabriel JakobsonMethod and system for presenting address and mapping information
US20090177744A1 (en)2008-01-042009-07-09Yahoo! Inc.Identifying and employing social network relationships
US8504945B2 (en)2008-02-012013-08-06Gabriel JakobsonMethod and system for associating content with map zoom function
US8490025B2 (en)2008-02-012013-07-16Gabriel JakobsonDisplaying content associated with electronic mapping systems
US8032297B2 (en)2008-05-082011-10-04Gabriel JakobsonMethod and system for displaying navigation information on an electronic map
US8014943B2 (en)2008-05-082011-09-06Gabriel JakobsonMethod and system for displaying social networking navigation information
US8646103B2 (en)2008-06-302014-02-04Gabriel JakobsonMethod and system for securing online identities
US20100005048A1 (en)*2008-07-072010-01-07Chandra BodapatiDetecting duplicate records
US8510664B2 (en)2008-09-062013-08-13Steven L. RuebenMethod and system for displaying email thread information
US20130247216A1 (en)2008-11-032013-09-19Salesforce.Com, IncSystem, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service
US20110082829A1 (en)*2009-10-062011-04-07Oracle International Corporation hybrid approach for equivalence reasoning
US8510045B2 (en)2009-12-222013-08-13Steven L. RuebenDigital maps displaying search-resulting points-of-interest in user delimited regions
US20110218958A1 (en)2010-03-082011-09-08Salesforce.Com, Inc.System, method and computer program product for performing one or more actions utilizing a uniform resource locator
US20110247051A1 (en)2010-04-012011-10-06Salesforce.Com, Inc.System, method and computer program product for performing one or more actions based on a determined access permissions for a plurality of users
US20120042218A1 (en)2010-08-132012-02-16Salesforce.Com, Inc.Debugging site errors by an admin as a guest user in a multi-tenant database environment
US20130290645A1 (en)*2011-12-072013-10-31Intel CorporationTechniques to prelink software to improve memory de-duplication in a virtual system
US20130212497A1 (en)2012-02-102013-08-15Liveperson, Inc.Analytics driven engagement
US8756275B2 (en)2012-02-172014-06-17ZebedoVariable speed collaborative web browsing system
US8769004B2 (en)2012-02-172014-07-01ZebedoCollaborative web browsing system integrated with social networks
US8769017B2 (en)2012-02-172014-07-01ZebedoCollaborative web browsing system having document object model element interaction detection
US20140108667A1 (en)*2012-10-152014-04-17Dell Products L.P.Techniques for Generating Different Sessions for Multiple Tabs of a Single Browser Window
US20160191598A1 (en)*2014-08-042016-06-30Likqid Media, Inc.System and methods that enable embedding, streaming, and displaying video advertisements and content on internet webpages accessed via mobile devices

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Referencing a Static Resource in Visualforce Markup, https://salesforce.com/us/developer/docs/pages/Content/pages—resources—reference.htm, 2014, (retrieved Sep. 9, 2015), 2 pages.
Singh, Sarvjeet, et al., "Orion 2.0: Native Support for Uncertain Data," Purdue University, Department of Computer Science, Copyright Jun. 9-12, 2008, 3 pages.
Window.top, https://developer.mozilla.org/en-US/docs/Web/API/Window.top. 2014, 2 pages.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20180024816A1 (en)*2016-07-202018-01-25Microsoft Technology Licensing, LlcCode snippet content recommendation to define an object literal
US10162605B2 (en)*2016-07-202018-12-25Microsoft Technology Licensing, LlcCode snippet content recommendation to define an object literal

Also Published As

Publication numberPublication date
US20160103803A1 (en)2016-04-14

Similar Documents

PublicationPublication DateTitle
US9756110B2 (en)Systems and methods for optimizing web page load time
US10515005B1 (en)Systems and methods for testing source code
US8959483B2 (en)Test framework of visual components in a multitenant database environment
US9910651B2 (en)System for developing, testing, deploying, and managing applications in real-time
US20150149985A1 (en)Testing of inactive design-time artifacts
US10977011B2 (en)Structured development for web application frameworks
US20210096825A1 (en)Systems, methods, and apparatuses for local web components development within a cloud based computing environment
US8516111B2 (en)System for enabling rich network applications
US9491266B2 (en)Representational state transfer communications via remote function calls
US20200110793A1 (en)Multi dimensional rules-based dynamic layouts
WO2016131311A1 (en)Browser compatibility method and browser
US10382583B2 (en)Method and system to update a front end client
US20170132023A1 (en)Monitoring And Actuation Of View Controller Parameters To Reach Deep States Without Manual Developer Intervention
US10594764B2 (en)Request cache to improve web applications performance
US20230171329A1 (en)Systems and methods for rendering interactive web pages
US9606844B2 (en)Remotely-hosted interactive client-server session
US8677332B1 (en)Executing multiple child code blocks via a single compiled parent code block
US20150199247A1 (en)Method and system to provide a unified set of views and an execution model for a test cycle
US20130086694A1 (en)Virtual federation of remote portals
US9606775B2 (en)Developing rich internet application
US11977882B2 (en)System and method implementing a design system review tool
US11704093B2 (en)Rapid prototyping of user experience components and related application functionality
US10698751B2 (en)Web services generation based on client-side code
US10599740B1 (en)Program code streaming
JP6683835B2 (en) Reduced waiting time when downloading electronic resources using multiple threads

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:SALESFORCE.COM, INC., CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LAM, CHUN TAK;REEL/FRAME:033944/0376

Effective date:20141009

STCFInformation on status: patent grant

Free format text:PATENTED CASE

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:4

ASAssignment

Owner name:SALESFORCE, INC., CALIFORNIA

Free format text:CHANGE OF NAME;ASSIGNOR:SALESFORCE.COM, INC.;REEL/FRAME:069268/0034

Effective date:20220325

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:8


[8]ページ先頭

©2009-2025 Movatter.jp