Web Spreadsheet Grid Block Asynchronous Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web-based spreadsheet applications often result in a user experience that differs from locally executed applications due to disparities in display capabilities and data retrieval methods, leading to delays and interactivity issues during navigation and dynamic updates.

Innovation Solution

Implementing asynchronous retrieval and rendering of grid data in blocks to mimic the navigation and update experience of locally executed spreadsheet applications, where blocks are loaded and unloaded based on user interaction and viewport requirements, optimizing resource usage and reducing network delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If all grid data is retrieved and displayed at once in web-based spreadsheet applications, then complete data availability is achieved, but network delays and degradation of user experience occur

Engineering Contradiction:
Improvedata availabilityVSAvoiddisplay delay
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The spreadsheet grid data is divided into multiple blocks, where each block represents a portion of the overall data set. The system retrieves and displays only the blocks that are currently visible or likely to be viewed, rather than loading all data at once. This segmentation approach maintains complete data availability on the server while significantly reducing initial network transfer time and improving display performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-fetching and caching grid blocks that are likely to be needed based on user navigation patterns. As users navigate through the spreadsheet, the system anticipates future viewing areas and retrieves those blocks in advance, reducing perceived delays and maintaining smooth user experience.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If grid data is retrieved asynchronously in blocks, then user experience is improved, but system complexity increases

Engineering Contradiction:
Improveuser experienceVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a block manager component that acts as an intermediary between the user interface and the data retrieval system. This block manager handles the complexity of asynchronous block retrieval, caching, and rendering automatically, allowing the rest of the system to operate with simpler logic while still achieving improved user experience through progressive data loading.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If data is retrieved over network in web services, then accessibility is improved, but interactivity and display speed deteriorate

Engineering Contradiction:
ImproveaccessibilityVSAvoiddisplay speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system implements local quality by caching retrieved grid blocks in the user's browser or local storage. Once data is retrieved from the network, it is stored locally for rapid access during navigation and interactions. This approach maintains the accessibility benefits of web-based services while dramatically improving display speed for subsequent operations, as the browser can access cached blocks without additional network requests.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8689095B2Grid presentation in web-based spreadsheet services
Publication Date: 2014.04.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8689095B2 patent drawing
  • US8689095B2 patent drawing
  • US8689095B2 patent drawing

AI summary

Users are enabled to navigate a spreadsheet document presented by a web service in a similar fashion to a locally executed spreadsheet application by retrieving blocks of grid data asynchronously in order to display or refresh the area(s) of the spreadsheet currently being viewed by the user as the user navigates the spreadsheet grid or dynamic updates occur. The blocks are laid out in the browser's user interface to fill the user's viewport as well as a predefined buffer around the edge of the viewport. As such, when the user scrolls or updates occur, data associated with blocks are added, updated, or removed in the browser as required to fill the user's viewport.