Jekins
@Jekins
Front-end developer

Как замерить время работы SSR?

Есть приложение на Vue.js с SSR на Nuxt.js. У кого есть идеи, как замерить время рендеринга приложения на сервере? На клиенте можно уцепиться за событие onLoad или DOMContentLoaded и вывести время ранее запущенного таймера, но за что можно уцепиться на сервере?
  • Вопрос задан
  • 313 просмотров
Решения вопроса 1
Jekins
@Jekins Автор вопроса
Front-end developer
Откопал ответ на свой вопрос. Может кому пригодится.

Создаем модуль по пути srс/modules/renderRouteDone.js в котором прописываем нужные нам хуки.

Например, хук завершения рендеринга и отправки на клиентскую часть:
export default function RenderRouteDone () {
  this.nuxt.hook('render:routeDone', (url, result, { res }) =>  {
    console.log('Route is server-rendered');
  });
}

и подключаем модуль в файл nuxt.config.js:
export default {
  ...
  modules: [
    '~/modules/renderRouteDone'
  ]
  ...
}

Подробнее про модули в Nuxt.js можно прочитать здесь.

Еще вариант, это через плагины.
import { isServer } from '../utils';

export default (context) => {
  if (isServer) {
    console.time('SERVER-TIME');

    context.beforeNuxtRender(_ => {
      console.timeEnd('SERVER-TIME');
    });
  }
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы