11import { Module } from "./module" ;
2- import { EVENT , RESOURCE_LOADING_TYPE } from "./enums" ;
2+ import { EVENT , RESOURCE_LOADING_TYPE , RESOURCE_TYPE } from "./enums" ;
33import { IPageFragmentConfig , IPageLibAsset , IPageLibConfiguration } from "./types" ;
44import { on } from "./decorators" ;
55import { AssetHelper } from "./assetHelper" ;
@@ -63,9 +63,9 @@ export class Core extends Module {
6363 static loadAssetsOnFragment ( fragmentName : string ) {
6464 const onFragmentRenderAssets = Core . __pageConfiguration . assets . filter ( asset => asset . fragment === fragmentName && asset . loadMethod === RESOURCE_LOADING_TYPE . ON_FRAGMENT_RENDER && ! asset . preLoaded ) ;
6565
66- const scripts = Core . createLoadQueue ( onFragmentRenderAssets ) ;
66+ const assets = Core . createLoadQueue ( onFragmentRenderAssets ) ;
6767
68- AssetHelper . loadJsSeries ( scripts ) ;
68+ AssetHelper . loadAssetSeries ( assets ) ;
6969 }
7070
7171 @on ( EVENT . ON_PAGE_LOAD )
@@ -78,9 +78,9 @@ export class Core extends Module {
7878 return false ;
7979 } ) ;
8080
81- const scripts = Core . createLoadQueue ( onFragmentRenderAssets ) ;
81+ const assets = Core . createLoadQueue ( onFragmentRenderAssets ) ;
8282
83- AssetHelper . loadJsSeries ( scripts ) ;
83+ AssetHelper . loadAssetSeries ( assets ) ;
8484 }
8585
8686 @on ( EVENT . ON_PAGE_LOAD )
@@ -174,18 +174,19 @@ export class Core extends Module {
174174 }
175175 }
176176
177- Object . keys ( res ) . forEach ( key => {
178- if ( ! key . startsWith ( '$' ) ) {
179- const container = document . querySelector ( this . getFragmentContainerSelector ( fragment , key ) ) ;
180- if ( container ) {
181- this . setEvalInnerHtml ( container , res [ key ] , container . tagName === "META" ) ;
177+ const fragmentAssets = Core . __pageConfiguration . assets . filter ( asset => asset . fragment === fragment . name ) ;
178+ const assets = Core . createLoadQueue ( fragmentAssets , true ) ;
179+
180+ AssetHelper . loadAssetSeries ( assets , ( ) => {
181+ Object . keys ( res ) . forEach ( key => {
182+ if ( ! key . startsWith ( '$' ) ) {
183+ const container = document . querySelector ( this . getFragmentContainerSelector ( fragment , key ) ) ;
184+ if ( container ) {
185+ this . setEvalInnerHtml ( container , res [ key ] , container . tagName === "META" ) ;
186+ }
182187 }
183- }
188+ } ) ;
184189 } ) ;
185-
186- const fragmentAssets = Core . __pageConfiguration . assets . filter ( asset => asset . fragment === fragment . name ) ;
187- const scripts = Core . createLoadQueue ( fragmentAssets , true ) ;
188- AssetHelper . loadJsSeries ( scripts ) ;
189190 }
190191
191192 private static getFragmentContainerSelector ( fragment : IPageFragmentConfig , partial : string ) {
@@ -231,32 +232,38 @@ export class Core extends Module {
231232 assets . forEach ( asset => {
232233 const fragment = Core . __pageConfiguration . fragments . find ( i => i . name === asset . fragment ) ;
233234 if ( asyncQueue || ( fragment && ! fragment . clientAsync ) ) {
234- if ( ! asset . preLoaded ) {
235- asset . preLoaded = true ;
236- asset . defer = true ;
237-
238- if ( asset . dependent ) {
239- asset . dependent . forEach ( ( dependencyName ) => {
240- const dependency = Core . __pageConfiguration . dependencies . filter ( dependency => dependency . name === dependencyName ) ;
241- const dependencyContent = dependency [ 0 ] ;
242- if ( fragment && fragment . clientAsync ) {
243- if ( dependencyContent ) {
244- if ( loadList . indexOf ( dependencyContent ) === - 1 ) {
245- loadList . push ( dependencyContent ) ;
246- dependencyContent . preLoaded = true ;
235+ if ( asset . type === RESOURCE_TYPE . JS ) {
236+ if ( ! asset . preLoaded ) {
237+ asset . preLoaded = true ;
238+ asset . defer = true ;
239+
240+ if ( asset . dependent ) {
241+ asset . dependent . forEach ( ( dependencyName ) => {
242+ const dependency = Core . __pageConfiguration . dependencies . filter ( dependency => dependency . name === dependencyName ) ;
243+ const dependencyContent = dependency [ 0 ] ;
244+ if ( fragment && fragment . clientAsync ) {
245+ if ( dependencyContent ) {
246+ if ( loadList . indexOf ( dependencyContent ) === - 1 ) {
247+ loadList . push ( dependencyContent ) ;
248+ dependencyContent . preLoaded = true ;
249+ }
247250 }
248- }
249- } else {
250- if ( dependencyContent && ! dependencyContent . preLoaded ) {
251- if ( loadList . indexOf ( dependencyContent ) === - 1 ) {
252- loadList . push ( dependencyContent ) ;
253- dependencyContent . preLoaded = true ;
251+ } else {
252+ if ( dependencyContent && ! dependencyContent . preLoaded ) {
253+ if ( loadList . indexOf ( dependencyContent ) === - 1 ) {
254+ loadList . push ( dependencyContent ) ;
255+ dependencyContent . preLoaded = true ;
256+ }
254257 }
255258 }
256- }
257- } ) ;
259+ } ) ;
260+ }
261+
262+ if ( loadList . indexOf ( asset ) === - 1 ) {
263+ loadList . push ( asset ) ;
264+ }
258265 }
259-
266+ } else if ( asset . type === RESOURCE_TYPE . CSS ) {
260267 if ( loadList . indexOf ( asset ) === - 1 ) {
261268 loadList . push ( asset ) ;
262269 }
0 commit comments