From b8c64ac1652f92ec93fa72c5f8c91eb5f80bf716 Mon Sep 17 00:00:00 2001 From: tangkikodo Date: Thu, 13 Apr 2017 16:35:20 +0800 Subject: [PATCH] change async loading into one-by-one loading --- src/canvas/view/CanvasView.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/canvas/view/CanvasView.js b/src/canvas/view/CanvasView.js index c749b7b19..01814934d 100644 --- a/src/canvas/view/CanvasView.js +++ b/src/canvas/view/CanvasView.js @@ -39,19 +39,21 @@ function(Backbone, FrameView) { var that = this; frame.el.onload = function () { - var scripts = that.config.scripts, + var scripts = that.config.scripts.slice(0), // clone counter = 0; - - scripts.map(function (scriptUrl) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = scriptUrl; - script.onerror = script.onload = function () { - counter++; - if (counter == scripts.length) that.renderBody(); - }; - frame.el.contentDocument.head.appendChild(script); - }); + + function appendScript(scripts) { + if (scripts.length > 0) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = scripts.shift(); + script.onerror = script.onload = appendScript.bind(null, scripts); + frame.el.contentDocument.head.appendChild(script); + } else { + that.renderBody(); + } + } + appendScript(scripts); }; },