How can I prevent re-render when window resize or lost focus in angular 6












4















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?










share|improve this question





























    4















    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?










    share|improve this question



























      4












      4








      4








      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?










      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 16 '18 at 9:59









      Eugene Mihaylin

      9961725




      9961725










      asked Nov 16 '18 at 8:54









      RavenRaven

      10516




      10516
























          1 Answer
          1






          active

          oldest

          votes


















          3














          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
          })





          share|improve this answer


























          • works like a charm, thanks

            – Raven
            Nov 16 '18 at 9:11












          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
          });


          }
          });














          draft saved

          draft discarded


















          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









          3














          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
          })





          share|improve this answer


























          • works like a charm, thanks

            – Raven
            Nov 16 '18 at 9:11
















          3














          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
          })





          share|improve this answer


























          • works like a charm, thanks

            – Raven
            Nov 16 '18 at 9:11














          3












          3








          3







          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
          })





          share|improve this answer















          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
          })






          share|improve this answer














          share|improve this answer



          share|improve this answer








          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



















          • 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




















          draft saved

          draft discarded




















































          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.




          draft saved


          draft discarded














          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





















































          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







          Popular posts from this blog

          Xamarin.iOS Cant Deploy on Iphone

          Glorious Revolution

          Dulmage-Mendelsohn matrix decomposition in Python