Giter Club home page Giter Club logo

Comments (5)

alan-agius4 avatar alan-agius4 commented on May 8, 2024 1

You can use a script to generate the routesFile which is explained in https://angular.io/guide/prerendering#prerendering-parameterized-routes

from angular.

alan-agius4 avatar alan-agius4 commented on May 8, 2024

In this situation, the /test route is prerendered (SSG), leading to enhanced speed. This implies that upon requesting the route, there's no requirement for server-side rendering or API calls, thereby amplifying its performance.

You can confirm this by examining the generated prerendered-routes.json:

$ cat dist/angular17/prerendered-routes.json
{
  "routes": [
    "/test"
  ]
}                                                                                                                                                                                                                                                                                            

When prerendering is disabled, you'll notice similar timings:

$ curl -o /dev/null -s -w 'Total: %{time_total}s\n' http://localhost:4000/test
Total: 0.043543s
$ curl -o /dev/null -s -w 'Total: %{time_total}s\n' http://localhost:4000/foo
Total: 0.042470s

You can learn more about prerendering here: https://angular.io/guide/prerendering

from angular.

majidkhaleghian avatar majidkhaleghian commented on May 8, 2024

I added this option to angular.json:

"prerender": {
   "discoverRoutes": false
 },

The routes that weren't defined improved more than before. It went from around 1.2s to 370ms.

But the routes that were defined became much slower. For example, the /blog page took only 17ms before, but now it's close to 400ms.

Is there a way to avoid this slowdown?

It may be necessary for some pages to be prerendered and others not.

from angular.

alan-agius4 avatar alan-agius4 commented on May 8, 2024

The slowdown is because of the shift to rendering the page during request time rather than during build time. This outcome varies depending on your application and which routes are best suited for prerendering. Additionally, it's worth noting that in most scenarios, enabling caching at the server/CDN layer is advisable to avoid rendering the same SSR'd request repeatedly for each incoming request.

Note: to completely disable prerendering, you can also use "prerender": false.

from angular.

slemont3 avatar slemont3 commented on May 8, 2024

Hi @alan-agius4

Many thanks for the prompt feedback. Given the state of affairs after your explanation, we'd need to somehow define the routes programmatically during the build (if that's possible at all) such that they could be pre-rendered accordingly? Otherwise it seems that we'd arrive at a dead end when wanting to use dynamic routes with Storyblok and Angular 17 SSR effectively and without long page loading times.

from angular.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.