suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Informationen zur Load()-Synchronisationsblockierung von jquery

Jetzt müssen wir die Kopf- und Fußzeile der Seite separat in eine Hauptseite laden. Die Leistung bei der Verwendung von iframe ist nicht gut und die reine HTML-Seite kann nicht zum direkten Laden der Seite mit der von mir verwendeten Include-Methode verwendet werden Ich habe nicht gelernt, wie man die Vorlagen von Frameworks wie React und Angular importiert. Nach langem Überlegen kann nur die Methode „load()“ von jquery zum Laden verwendet werden. Das Problem besteht nun darin, dass die Methode „load“ dazu führt, dass der Hauptthread synchronisiert wird blockiert werden, und die Seitenerfahrung wird sehr schlecht sein.

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

Meine Frage lautet nun:
1. Kann die Lademethode nicht wie die Ajax-Methoden $.get oder $.post auf asynchrones Laden eingestellt werden, um ein Blockieren des Hauptthreads zu vermeiden? Wie löse ich das durch Load() verursachte Hauptproblem der Thread-Blockierung?
Ich habe relevante Informationen gelesen und es scheint, dass die Verwendung von h5 Worker die Blockierung des Hauptthreads vermeiden kann. Ich habe Worker noch nie verwendet.

2. Wie sollte ich zusätzlich zu den in meinem Artikel genannten Methoden die aktuelle Situation in der Unternehmensentwicklung am besten lösen, um das Laden von Kopf- und Fußzeilen zu lösen?

Willkommen bei der Lösung des Problems, vielen Dank!

天蓬老师天蓬老师2747 Tage vor648

Antworte allen(3)Ich werde antworten

  • 滿天的星座

    滿天的星座2017-05-19 10:22:45

    load()默认就是异步加载的,不会造成主线程阻塞。所以警告中的同步阻塞问题不是这里单一的load()造成的。我后来查了子页面,发现子页面中有<script src="*">,。于是去掉了子页面中的外部js引入,警告就没有了。所以是load()和子页面中的外部js引入造成的同步阻塞警告。

    Antwort
    0
  • ringa_lee

    ringa_lee2017-05-19 10:22:45

    1.此方法的底层调用的是$.ajax()方法,对服务端进行ajax请求。所以默认就是异步加载的,不会造成主线程阻塞。
    。不过因为默认就是异步加载,所以就可能出现这种情况,页面主体部分先显示出来,而后服务端的页头,页尾数据才返回过来并插入页面中,导致页面主体部分,页头,页尾不同时出现,会闪一下。
    2.我遇到的情况是页头页尾搭配相对固定的情况,因此可以做一个模板页面,页头和页尾写死在其中,而后页面的主体部分嵌入iframe,根据情况设置iframe的地址指向相应的具体页面。

    Antwort
    0
  • 某草草

    某草草2017-05-19 10:22:45

    1当然可以.

    var html = $.get('xx.yy');
    $('selector').html(html);
    

    2.我一般是头和尾,加上content,会做成base.html,php用的时候会extend base.html

    Antwort
    0
  • StornierenAntwort