Reporting — Web Report Viewer Enhancements — Improved Search Experience, Streamlined Page Load, and more (v23.1)

Reporting Team Blog
16 October 2023

Our last major update (v23.1) included multiple Web Report/Document Viewer-related enhancements. In this blog post, I'll focus on the following new capabilities: improved search experience, streamlined page loading, I'll also describe a couple of minor new features available in this build.

Streamlined Page Loading

v23.1 shipped with improved Web Document Viewer page load performance. Our report document generation process now starts automatically on the server without a startBuild request from the client. This change allows us to display the first page of a report almost instantaneously.

  • In single-page mode, the Document Viewer (by default) preloads the first 15 pages of a report in high resolution (allowing users to browse through the first set of pages while the remaining pages are generated). The Web Document Viewer continues to preload the remaining pages in low resolution in batches of 15 pages. You can modify the number of pages to preload with the PreloadedPagesOffset setting.

  • In multi-page mode, the Document Viewer now displays pages immediately - using a lower resolution (instead of displaying a loading indicator). This eliminates the need to wait for pages to load in full resolution and allows a user to quickly navigate to a specific report page.

We aalso reduced the value of the throttle to 150ms. Throttle is a function that limits the frequency of another function’s execution. Changing the throttle value in the Document Viewer reduces lag when scrolling through the report (due to getPage requests being sent to the server more often). You can change the default value with the MultipageScrollingThrottle variable. The lower the throttle value, the less lag you experience when scrolling through the report.

You can review these improvements within the following online demo:

Asynchronous Document Search

v23.1 includes a new asynchronous search engine within the DevExpress Web Document Viewer. This engine allows users to view the number of search results found in real-time, navigate through search results, and stop the search process at any time if they do not wish to wait for the entire document to be scanned.  

The new search engine is of particular value when dealing with large documents as it does not require users to wait for entire document to be scanned. You can explore this engine against our Large Dataset demo by opening the search panel and entering a search query:

To revert to previous search behaviors, you can simply disable the UseAsyncSearch property.

Miscellaneous — PDF Signing, Accessibility, New Fetch API for Print and Export

In this section, I'll briefly review a couple of other DevExpress Web Document Viewer enhancements.

Sign PDF Documents

v23.1 allows you to digitally sign reports exported to PDF within our Web Document Viewer. Users can either sign the exported document using the Document Viewer’s UI or you can customize the exported document with the CustomizeExportDocumentOnFinish method.

For more information, please review the following blog post: Web Reporting & Office File API - Sign PDF Documents.

Web Document Viewer - Signature Options, DevExpress

To review this capability, please load the following online demo app: 

Improved Accessibility

We improved accessibility within the DevExpress Document Viewer: we assigned WAI-ARIA attributes to all UI elements in the Viewer and improved keyboard navigation between UI elements. The Document Viewer can now pass Accessibility Insights and Chrome Lighthouse tests.

You can review accessibility-related features in the following demo: Document Viewer Accessibility Demo.

Fetch API

We now use Fetch API for communication between the server and client by default. The use of the Fetch API provides a unified method to pass request headers from a client to a back-end server, including export and print operations:

import { fetchSetup } from '@devexpress/analytics-core/analytics-utils';
fetchSetup.fetchSettings = { headers: { Authorization : 'Bearer' + token } };

For more information on how this change affects your application, refer to the following breaking change document: Web Reporting - Export and print capabilities now utilize Fetch instead of jQuery Ajax.

What's New in v23.1

If you have yet to review the features/capabilities introduced in our most recent major update, please visit the following webpage and let us know what you think of this release by responding to our online survey: Reporting — Explore Our Newest Features (v23.1).

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.