Skip to content
English
  • There are no suggestions because the search field is empty.

Web Survey Widget Performance and Technical Characteristics

This article explains how the Pisano Web Survey Widget loads and behaves after it is embedded on a website. It also covers its performance characteristics, browser storage usage, implementation recommendations, and technical behavior.

What You Will Find Here

This article helps you:

What Can You Do Here?

Widget Initialization Process

The Pisano Web Survey Widget is initialized through a lightweight inline embed snippet that loads the widget runtime from the Pisano CDN. The loading process is designed to minimize the widget's impact on the host website by loading only the resources required during each stage of initialization.

Initialization Flow

  • Add the lightweight inline Pisano embed snippet to your website.
  • The embed snippet creates the Pisano.q command queue.
  • The snippet injects the widget runtime from:[https://web.pisano.com.tr/scripts/widget/widget.js](https://web.pisano.com.tr/scripts/widget/widget.js)
  • The downloaded widget.js file loads:
    • Runtime configuration
    • Asset path setup
    • Initialization bundle
  • Initialize the widget by executing:Pisano('boot', 'PSN-xxx')
  • The widget creates a Redux store.
  • A fixed position container is mounted on document.body.
  • The Widget UI is loaded through lazy loading.
  • The widget retrieves its configuration from the Pisano API.
  • After the configuration is loaded, the survey trigger button is rendered.
  • Survey questions, translations, and chat resources are downloaded only after a visitor interacts with the widget.

Initialization Characteristics

  • The embed snippet is approximately 350 bytes.
  • The widget runtime is loaded from the Pisano CDN.
  • Code splitting reduces the amount of JavaScript loaded during initialization.
  • Lazy loading postpones survey resources until they are needed.
  • The widget runs inside an isolated DOM container to minimize its impact on the host page.

Performance Impact

The Web Survey Widget is designed to minimize its impact on the host website during initialization and normal operation. Most resources are downloaded only when they are required, and no unnecessary background activity occurs after the widget is loaded.

Concern Assessment
Host page rendering Minimal. The widget runs inside an isolated #psn-widget-container.
Initial network transfer Approximately 2.6 MB gzip during the first load. This includes widget.js, the widget chunk, CSS, and the configuration API request.
Survey UI transfer Approximately 500 KB to 2.8 MB gzip. These resources are downloaded only after a visitor opens the survey.
Ongoing background activity None. The widget performs no polling, analytics collection, or ad tracking.
Main thread blocking Moderate during the initial script parsing process. No requestIdleCallback deferral is used.
Repeat visits Significantly faster because hashed production assets remain cached for one year.

The initial network transfer occurs only during the first load. Repeat visits benefit from long term browser caching, which significantly reduces download time.

Implementation Recommendations

Follow these recommendations when deploying the Web Survey Widget.

  • Place the embed snippet before the closing </body> tag.
  • Use the following method if you want to defer widget initialization:Pisano('onLoad', ...)
  • Ensure your Content Security Policy allows requests to:web.pisano.com.tr

These recommendations help ensure the widget loads correctly and behaves as expected across supported environments.

Production Assets

The Web Survey Widget downloads different assets throughout its lifecycle. Some assets are required during initialization, while others are loaded only after a visitor interacts with the widget.

Asset Gzip Transfer Loaded When
Inline snippet ~350 B Immediately
widget.js ~2.5 MB Script injection
Widget chunk ~131 KB Widget boot
Widget configuration API ~2 KB to 10 KB Widget boot
Widget button CSS ~11 KB Widget boot
Flow, Translate, and vendor assets ~500 KB to 2.8 MB Survey open

Loading assets on demand helps reduce the amount of data transferred during initialization. Survey resources are downloaded only when a visitor opens the widget.

Browser Storage Footprint

The Web Survey Widget stores a small amount of data in the browser to support sessions, widget state, channels, and incomplete surveys.

Typical browser storage usage is approximately 1 KB to 5 KB.

Storage usage may reach 50 KB when multiple widgets are present or several incomplete surveys are stored.

Storage Key Typical Size
PisanoCacher::PISANO_SESSION ~80 to 120 B
PisanoCacher::DEVICE_ID ~50 B
PisanoCacher::widgetStores ~200 to 500 B per widget
PisanoCacher::linkChannels ~100 to 300 B per channel
PisanoCacher::INCOMPLETE_SURVEYS ~200 B to several KB

Technical Characteristics

The Web Survey Widget is designed to operate independently from the host website. Its implementation avoids common tracking mechanisms and limits its impact on the surrounding page.

The widget:

  • Does not create third party cookies.
  • Does not perform cross site tracking.
  • Does not use advertising or marketing pixels.
  • Does not use analytics.
  • Does not use ad trackers.
  • Does not modify the host page layout outside the widget container.

Limits / Notes

Keep the following considerations in mind when planning an implementation:

  • Survey resources are downloaded only after user interaction.
  • Cached production assets significantly improve loading performance on repeat visits.
  • Browser storage usage depends on the number of widgets and any incomplete surveys stored in the browser.

FAQs

Does the widget significantly affect host page performance?

No. The widget is designed to minimize its impact on the host website by using code splitting, lazy loading, and an isolated DOM container. Survey resources are downloaded only after a visitor interacts with the widget.

How can widget initialization be deferred?

Place the embed snippet before the closing tag and initialize the widget by using:

Pisano('onLoad', ...)

This delays widget initialization until your application is ready.

Does the widget create third party cookies, perform cross site tracking, or use advertising trackers?

No. The widget does not create third party cookies, perform cross site tracking, use advertising or marketing pixels, use analytics, use ad trackers, or modify the host page layout outside the widget container.

Check the Related Article:

 Web Survey Widget Cookie & Local Storage Usage