Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 210новых вакансий за сутки·93 612вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 266
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 401 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 126
  • Облачные технологии14 083
  • QA вакансии3 456
  • Backend вакансии2 115
  • Инженер данных1 809
  • Продакт-менеджер1 261

Разработка

  • Android1 862
  • iOS1 700
  • Fullstack вакансии986
  • AI вакансии950
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 688
  • Java6 537
  • Node.js2 026
  • .NET1 722
  • Kotlin1 611
  • Rust1 458
  • C#710
  • PHP682
  • C++571

DevOps и инфраструктура

  • Kubernetes7 772
  • DevOps вакансии6 054
  • Linux-инфраструктура5 493
  • Terraform / IaC4 275
  • CI/CD3 239
  • Мониторинг и Observability1 790
  • SRE568
  • Кибербезопасность458

Аналитика и данные

  • Data Scientist1 143
  • Бизнес-аналитик923
  • Аналитик данных857
  • Системный аналитик152

Другие направления

  • Проджект-менеджер620
  • UI/UX дизайн146
  • Ручное тестирование14

По регионам

  • Вакансии в США44 276
  • Вакансии в Европе23 819
  • Вакансии в Канаде4 471
  • Работа в России3 904

По формату

  • Удалённые вакансии74 928
  • Релокация в США44 273
  • Гибридная работа12 388
  • Офисная работа7 083

По уровню

  • Senior вакансии42 625
  • Middle вакансии20 854
  • Junior вакансии6 721

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Svelte / SvelteKitВсе вопросы
Svelte / SvelteKitMiddleТеория

В чём разница между функциями load в +page.ts и +page.server.ts?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

+page.ts выполняется и на сервере (SSR) и в браузере (навигация), не имеет доступа к locals/cookies/БД. +page.server.ts работает только на сервере, имеет доступ к locals, cookies, секретам и может экспортировать Form Actions.

+page.ts — универсальный загрузчик

  • Выполняется на сервере при SSR (первый запрос) и в браузере при клиентской навигации.
  • Имеет доступ к fetch (уже настроенному SvelteKit для правильной обработки cookie/credentials), params, url, route, data (от layout).
  • НЕ имеет доступа к locals, cookies, переменным из $env/static/private.
  • Подходит для запросов к публичным API без авторизации.
// src/routes/products/+page.ts
import type { PageLoad } from './$types';

export const load: PageLoad = async ({ fetch, url }) => {
  const page = url.searchParams.get('page') ?? '1';
  // fetch здесь — это SvelteKit-обёртка, работающая и на сервере и в браузере
  const res = await fetch(`/api/products?page=${page}`);
  const products = await res.json();
  return { products };
};

load в +page.ts vs +page.server.ts

Оба файла экспортируют функцию load, которая возвращает данные для +page.svelte через проп data. Ключевое различие — где и когда они выполняются.

+page.server.ts — серверный загрузчик

  • Выполняется только на сервере — при SSR и при каждой клиентской навигации (через внутренний fetch к серверу).
  • Имеет доступ к locals (пользователь из handle()), cookies, platform (Cloudflare Workers env), секретным переменным окружения.
  • Может напрямую обращаться к БД, файловой системе, внутренним сервисам.
  • Дополнительно экспортирует actions для обработки форм.
// src/routes/account/+page.server.ts
import { redirect, error } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';

export const load: PageServerLoad = async ({ locals, cookies }) => {
  // locals.user — установлен в hooks.server.ts
  if (!locals.user) {
    throw redirect(303, '/login');
  }

  // Прямой запрос к БД — возможен только здесь
  const orders = await db.orders.findByUser(locals.user.id);
  const sessionInfo = cookies.get('session');

  return { user: locals.user, orders };
};

Совместное использование

Оба файла могут существовать одновременно. Данные мёржатся: +page.ts получает data из серверного загрузчика через параметр parent().

// +page.server.ts
export const load = async ({ locals }) => {
  return { user: locals.user }; // Только сервер
};

// +page.ts
export const load = async ({ fetch, parent }) => {
  const { user } = await parent(); // Данные из server load
  const posts = await fetch('/api/posts').then(r => r.json());
  return { posts }; // Мёржится с { user }
};

Таблица сравнения

  • Где выполняется: .ts — сервер + браузер; .server.ts — только сервер
  • locals/cookies: .ts — нет; .server.ts — да
  • Прямой доступ к БД: .ts — нет; .server.ts — да
  • fetch к публичным API: .ts — да; .server.ts — да
  • Form actions: .ts — нет; .server.ts — да
  • Повторный вызов при навигации: .ts — в браузере; .server.ts — через сервер

Подводные камни

  • Если используется только +page.ts и в нём делается запрос к защищённому API, при клиентской навигации cookie может не передаться корректно — используйте +page.server.ts для чувствительных данных.
  • parent() в +page.ts ждёт завершения +page.server.ts и layout загрузчиков — это блокирует параллелизм; не вызывайте parent() если данные не нужны немедленно.
  • При наличии обоих файлов TypeScript тип PageData объединяет оба возвращаемых значения — убедитесь, что нет конфликтующих ключей.
  • В +page.server.ts данные сериализуются из сервера в браузер через devalue — Map, Set, Date поддерживаются, но кастомные классы — нет.
  • +page.ts с export const ssr = false будет выполняться только в браузере — это полезно для страниц с клиентским состоянием, но убивает SEO.
  • Функция fetch внутри +page.ts при SSR делает внутренний запрос к серверу SvelteKit — это накладные расходы; для серверных данных предпочитайте +page.server.ts с прямым вызовом.

Типичные ошибки

  • Путать load functions с похожим API из соседнего фреймворка.
  • Не объяснять, где код выполняется: сервер, клиент, build step или runtime.
  • Игнорировать влияние на hydration, cache, bundle size или безопасность.

Что проверяет интервьюер

  • Точно объясняет назначение механизма «load functions».
  • Показывает корректный минимальный пример без выдуманных API.
  • Называет ограничения, failure modes и production-компромиссы.

Как вы знаете этот вопрос?

Проверить себя по теме Svelte / SvelteKit →

Источники

  • https://svelte.dev/docs/kit/load
  • https://svelte.dev/docs/kit/routing
←Предыдущий вопросКак работает файловая маршрутизация в SvelteKit? Что такое `+page.svelte`, `+layout.svelte`, `+page.server.ts`?Следующий вопрос→В каких типах frontend-проектов Svelte / SvelteKit даёт реальный выигрыш, а где будет избыточен или неудачен?

Связанные темы

Svelte / SvelteKitdata-fetchingsecurity-boundaries

Частые вопросы на собеседовании

  • Что такое SvelteKit и что он добавляет поверх Svelte?
  • Что такое система runes в Svelte 5 ($state, $derived, $effect, $props)? Как она заменяет старую модель реактивности?
  • Что такое stores в Svelte? Объясните writable, readable и derived stores.
  • Как реализовать аутентификацию в SvelteKit?