mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
fix(core): don't schedule timer triggers on the server (#55605)
Fixes that even though we weren't rendering the deferred block the server, we were still triggering the timeout which can delay the response. Fixes #55475. PR Close #55605
This commit is contained in:
committed by
Andrew Kushnir
parent
c9f27b434a
commit
3818436ebc
@@ -424,9 +424,14 @@ function scheduleDelayedTrigger(
|
||||
const tNode = getCurrentTNode()!;
|
||||
|
||||
renderPlaceholder(lView, tNode);
|
||||
const cleanupFn = scheduleFn(() => triggerDeferBlock(lView, tNode), lView);
|
||||
const lDetails = getLDeferBlockDetails(lView, tNode);
|
||||
storeTriggerCleanupFn(TriggerType.Regular, lDetails, cleanupFn);
|
||||
|
||||
// Only trigger the scheduled trigger on the browser
|
||||
// since we don't want to delay the server response.
|
||||
if (isPlatformBrowser(lView[INJECTOR]!)) {
|
||||
const cleanupFn = scheduleFn(() => triggerDeferBlock(lView, tNode), lView);
|
||||
const lDetails = getLDeferBlockDetails(lView, tNode);
|
||||
storeTriggerCleanupFn(TriggerType.Regular, lDetails, cleanupFn);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -437,15 +442,20 @@ function scheduleDelayedTrigger(
|
||||
function scheduleDelayedPrefetching(
|
||||
scheduleFn: (callback: VoidFunction, lView: LView) => VoidFunction) {
|
||||
const lView = getLView();
|
||||
const tNode = getCurrentTNode()!;
|
||||
const tView = lView[TVIEW];
|
||||
const tDetails = getTDeferBlockDetails(tView, tNode);
|
||||
|
||||
if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
|
||||
const lDetails = getLDeferBlockDetails(lView, tNode);
|
||||
const prefetch = () => triggerPrefetching(tDetails, lView, tNode);
|
||||
const cleanupFn = scheduleFn(prefetch, lView);
|
||||
storeTriggerCleanupFn(TriggerType.Prefetch, lDetails, cleanupFn);
|
||||
// Only trigger the scheduled trigger on the browser
|
||||
// since we don't want to delay the server response.
|
||||
if (isPlatformBrowser(lView[INJECTOR]!)) {
|
||||
const tNode = getCurrentTNode()!;
|
||||
const tView = lView[TVIEW];
|
||||
const tDetails = getTDeferBlockDetails(tView, tNode);
|
||||
|
||||
if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
|
||||
const lDetails = getLDeferBlockDetails(lView, tNode);
|
||||
const prefetch = () => triggerPrefetching(tDetails, lView, tNode);
|
||||
const cleanupFn = scheduleFn(prefetch, lView);
|
||||
storeTriggerCleanupFn(TriggerType.Prefetch, lDetails, cleanupFn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user