See whats cooking – Panorama Viewer, Screenshots, Caching and Real Time Polling

seewhatscooking-header

In this blog section we like to inform you about topics and technologies that we are evaluating and working on to possibly integrate into Wisej in the future. While this is not intended to be a roadmap, it should still give you some insights behind the scenes and a feeling of what could be included in future Wisej releases.

This time we want to present you 2 new extensions that we added in order to prvide extra benefit to your Wisej applications. We are also constantly improving our core framework and recently we added a new transparent caching layer plus a real time polling alternative when not running on WebSocket and increased security.

Finally we also expanded our repository on GitHub.

New extensions available

We recently added 2 new free extensions to our download directory:

https://wisej.com/extensions/

As with all our other extensions they are shipping with full source code so you can explore and extend them. They actually show quite well how to turn widgets into server wired controls that fit very well into your server side code environment.

Pannellum extension

The first extension we want to show here is a Panorama Viewer. We wrapped up the Pannellum library (https://pannellum.org/ ) . It is a lightweight, free and open source panorama viewer for the web. For a full list of features, supported browsers and documentation, please refer to their website.

Our Pannellum extension now wraps this powerful Panorama Viewer and allows integration and interaction with it from server side code. This could include providing data and images from databases and/or handling events like clicking on hotspots etc.

Sample setup using dynamic Options object:

options_code_pannellum

Handling hotspot click event:

event_pannellum

You can find a Wisej sample demonstrating some of the Pannellum features here:

http://demo.wisej.com/pannellum

Html2Canvas extension

The second extension helps you to create screenshots and can also be used from server side code. Here we wrapped the Html2Canvas library (https://html2canvas.hertzen.com/) and using our Wisej extensions you can create screenshots from the complete browser or selected controls and windows through a simple function call without requiring any installation of browser plugins or similar.

In our Wisej extension we also added support for SVG icons which was not present in the original javascript library.

As mentioned before both extensions are free and downloadable with full source code at https://wisej.com/extensions/ Please give it a try and send us your feedback !

Caching

The next Wisej release adds a new layer of caching. All resources that are handled by Wisej are verified and loaded from the cache if they did not change. This includes the Wisej core resources (with Qooxdoo) but also all images in buttons, custom javascript code snippets etc. The caching results in much faster startup times for Wisej applications.

You can try it out with our demo server that already uses the next build: http://demo.wisej.com/CodeProject
See the difference if you open it again or inspect it with Chrome Console (Hit F12).

Make sure to uncheck “Disable cache” and see which resources are loaded from cache on subsequent calls (with Http status 304).

Real Time Polling

Wisej fully supports real time updates between Client and Server through Websockets. However there might be scenarios where you cannot use Websockets (depending on infrastructure).

For these scenarios we added an easy to use polling mechanism that you can set up through your default.json with the pollingInterval parameter.

It defaults to 0 and is also not active when WebSockets are available. When you setup an interval (in milliseconds) your server will be polled for changes automatically.

From a user perspective this feels like push updates and no changes to your code are required.

Improved Security

Users whose sessions expire will be shown a blank screen clearing all sensitive data by the server (websockets only).

Session keys are changed from GUIDs to numbers generated by a cryptographically secure Random Number Generator (RNG).

GitHub

We greatly expanded our repository on GitHub. It now includes all samples, themes, extensions, selenium driver and more. Find out at: https://github.com/iceteagroup.