How can I prevent re-render when window resize or lost focus in angular 6
I have a component in Angular 6.0.8, which only contain an iframe.
page.component.html:
<iframe [src]="url">
page.component.ts:
ngOnInit() {
this.url = this.route.snapshot.data['url];
}
Now, when I resize the window or click mouse outside of component (lost focus), angular will re-render it (lifecycle-hooks shows: DoCheck, AfterContentChecked, AfterViewChecked)
And browser will request the url in the iframe again, which is not what i supposed to.
How to prevent this behavior?
javascript angular typescript webpage-rendering
add a comment |
I have a component in Angular 6.0.8, which only contain an iframe.
page.component.html:
<iframe [src]="url">
page.component.ts:
ngOnInit() {
this.url = this.route.snapshot.data['url];
}
Now, when I resize the window or click mouse outside of component (lost focus), angular will re-render it (lifecycle-hooks shows: DoCheck, AfterContentChecked, AfterViewChecked)
And browser will request the url in the iframe again, which is not what i supposed to.
How to prevent this behavior?
javascript angular typescript webpage-rendering
add a comment |
I have a component in Angular 6.0.8, which only contain an iframe.
page.component.html:
<iframe [src]="url">
page.component.ts:
ngOnInit() {
this.url = this.route.snapshot.data['url];
}
Now, when I resize the window or click mouse outside of component (lost focus), angular will re-render it (lifecycle-hooks shows: DoCheck, AfterContentChecked, AfterViewChecked)
And browser will request the url in the iframe again, which is not what i supposed to.
How to prevent this behavior?
javascript angular typescript webpage-rendering
I have a component in Angular 6.0.8, which only contain an iframe.
page.component.html:
<iframe [src]="url">
page.component.ts:
ngOnInit() {
this.url = this.route.snapshot.data['url];
}
Now, when I resize the window or click mouse outside of component (lost focus), angular will re-render it (lifecycle-hooks shows: DoCheck, AfterContentChecked, AfterViewChecked)
And browser will request the url in the iframe again, which is not what i supposed to.
How to prevent this behavior?
javascript angular typescript webpage-rendering
javascript angular typescript webpage-rendering
edited Nov 16 '18 at 9:59
Eugene Mihaylin
9961725
9961725
asked Nov 16 '18 at 8:54
RavenRaven
10516
10516
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
One of the most recomended ways (to solve not this concrete problem, but all unneeded rerenders) is to use change detection strategy on push (ChangeDetectionStrategy.OnPush
).
A comprehensive guide to angular onpush change detection strategy
By default Angular uses the
ChangeDetectionStrategy.Default
change detection strategy.
The default strategy doesn’t assume anything about the application, therefore every time something changes in our application, as a result of various user events, timers, XHR, promises, etc., a change detection will run on all components.
This means anything from a click event to data received from an ajax call causes the change detection to be triggered.
...
OnPush Change Detection Strategy
We can set the ChangeDetectionStrategy of our component to ChangeDetectionStrategy.OnPush .
Example:
@Component({
selector: 'tooltip',
template: `
<h1>{{config.position}}</h1>
{{runChangeDetection}}
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
works like a charm, thanks
– Raven
Nov 16 '18 at 9:11
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53334389%2fhow-can-i-prevent-re-render-when-window-resize-or-lost-focus-in-angular-6%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
One of the most recomended ways (to solve not this concrete problem, but all unneeded rerenders) is to use change detection strategy on push (ChangeDetectionStrategy.OnPush
).
A comprehensive guide to angular onpush change detection strategy
By default Angular uses the
ChangeDetectionStrategy.Default
change detection strategy.
The default strategy doesn’t assume anything about the application, therefore every time something changes in our application, as a result of various user events, timers, XHR, promises, etc., a change detection will run on all components.
This means anything from a click event to data received from an ajax call causes the change detection to be triggered.
...
OnPush Change Detection Strategy
We can set the ChangeDetectionStrategy of our component to ChangeDetectionStrategy.OnPush .
Example:
@Component({
selector: 'tooltip',
template: `
<h1>{{config.position}}</h1>
{{runChangeDetection}}
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
works like a charm, thanks
– Raven
Nov 16 '18 at 9:11
add a comment |
One of the most recomended ways (to solve not this concrete problem, but all unneeded rerenders) is to use change detection strategy on push (ChangeDetectionStrategy.OnPush
).
A comprehensive guide to angular onpush change detection strategy
By default Angular uses the
ChangeDetectionStrategy.Default
change detection strategy.
The default strategy doesn’t assume anything about the application, therefore every time something changes in our application, as a result of various user events, timers, XHR, promises, etc., a change detection will run on all components.
This means anything from a click event to data received from an ajax call causes the change detection to be triggered.
...
OnPush Change Detection Strategy
We can set the ChangeDetectionStrategy of our component to ChangeDetectionStrategy.OnPush .
Example:
@Component({
selector: 'tooltip',
template: `
<h1>{{config.position}}</h1>
{{runChangeDetection}}
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
works like a charm, thanks
– Raven
Nov 16 '18 at 9:11
add a comment |
One of the most recomended ways (to solve not this concrete problem, but all unneeded rerenders) is to use change detection strategy on push (ChangeDetectionStrategy.OnPush
).
A comprehensive guide to angular onpush change detection strategy
By default Angular uses the
ChangeDetectionStrategy.Default
change detection strategy.
The default strategy doesn’t assume anything about the application, therefore every time something changes in our application, as a result of various user events, timers, XHR, promises, etc., a change detection will run on all components.
This means anything from a click event to data received from an ajax call causes the change detection to be triggered.
...
OnPush Change Detection Strategy
We can set the ChangeDetectionStrategy of our component to ChangeDetectionStrategy.OnPush .
Example:
@Component({
selector: 'tooltip',
template: `
<h1>{{config.position}}</h1>
{{runChangeDetection}}
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
One of the most recomended ways (to solve not this concrete problem, but all unneeded rerenders) is to use change detection strategy on push (ChangeDetectionStrategy.OnPush
).
A comprehensive guide to angular onpush change detection strategy
By default Angular uses the
ChangeDetectionStrategy.Default
change detection strategy.
The default strategy doesn’t assume anything about the application, therefore every time something changes in our application, as a result of various user events, timers, XHR, promises, etc., a change detection will run on all components.
This means anything from a click event to data received from an ajax call causes the change detection to be triggered.
...
OnPush Change Detection Strategy
We can set the ChangeDetectionStrategy of our component to ChangeDetectionStrategy.OnPush .
Example:
@Component({
selector: 'tooltip',
template: `
<h1>{{config.position}}</h1>
{{runChangeDetection}}
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
edited Nov 16 '18 at 9:52
answered Nov 16 '18 at 9:06
Eugene MihaylinEugene Mihaylin
9961725
9961725
works like a charm, thanks
– Raven
Nov 16 '18 at 9:11
add a comment |
works like a charm, thanks
– Raven
Nov 16 '18 at 9:11
works like a charm, thanks
– Raven
Nov 16 '18 at 9:11
works like a charm, thanks
– Raven
Nov 16 '18 at 9:11
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53334389%2fhow-can-i-prevent-re-render-when-window-resize-or-lost-focus-in-angular-6%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown