## Q & A #### Modifying SPA Configuration Block Q: I have changed both SPA names in the SPA Configuration block and kept the rest including the entry points intact. I expect everything to keep working using my new names for the SPA landing pages instead of the old `/first.html` and `/second.html`. However navigation via the menu and Back/Forward browser buttons seems to be broken. How can it be fixed. A: Clear the browser's history and cache. Alternatively use an incognito tab. The client, the backend and the tests should work with the new names. #### IE Version Support Q: Which versions of Internet Explorer are supported. A: This project aims to work with browsers that are supported by vendors and can be made secure via security updates. Therefore IE11 is supported whereas IE10 and the earlier versions are not. The unsupported versions render a blank page with explanatory [message](https://github.com/winwiz1/crisp-react/blob/master/client/src/entrypoints/head-snippet.html#L8-L10) asking to upgrade. #### Dynamic Imports Q: Can I use dynamic imports in addition to multiple SPAs for code splitting? A: Yes, dynamic imports are fully supported. For example, if there is a Reporting bundle and one component is known to be used infrequently, then it's a good candidate to be separated from the bundle using a dynamic import: ```js const ReportingWrapperXXX = React.lazy(() => import( /* webpackChunkName: "reporting-xxx" */ /* webpackMode: "lazy" */ /* webpackPrefetch: "false" */ '/InfrequentReporting' )); ... // Can have its own Redux store to coexist with the main Redux store export const ReportingPanelXXX: React.FC = _props => { return ( Loading...}> ); } ``` Remember to change the settings in `tsconfig.json`: ``` "removeComments": false, "module": "esnext", ``` otherwise the dynamic import will be ignored and webpack 'magic comments' removed. > Note: `React.lazy` has a restriction, it works with default exports only. The restriction should be lifted in the future. When webpack detects dynamic imports, it emits code that loads the bundle it created asynchronously and `Suspense/lazy` needs to wait for the loading to complete. This technology is less straightforward and probably less mature than building a static bundle and referencing it via the `