经过大量调整后,我的代码就出现了:
var twitchApp = (function () {
var streamers = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
var url = 'https://api.twitch.tv/kraken/streams/';
var body = document.body;
var container = document.getElementById('container');
var cb = "?callback=twitchApp.handleJSON";
// function addScriptTags() {
// streamers.forEach(function (streamer) {
// var script = document.createElement("script");
// body.appendChild(script);
// script.src = url + streamer + cb;
// body.removeChild(script);
// });
//
// }
function addScriptTags() {
var scriptTags = streamers.map(createScriptTag).join("\n");
body.innerHTML += scriptTags;
}
function createScriptTag(streamer) {
var src = "src=\"" + url + streamer + cb + "\"";
var script = "<script " + src + "></script>";
return script;
}
var handleJSON = function (data) {
var prepareData = data;
console.log(data);
};
function addStreamers(streamerName) {
streamers.push(streamerName);
}
function removeStreamer(streamerName) {
streamers = streamers.map(function (streamer) {
return streamer !== streamerName;
});
}
return {
handleJSON: handleJSON,
addScriptTags: addScriptTags,
addStreamers: addStreamers,
removeStreamer: removeStreamer
};
})();
twitchApp.addScriptTags();
我使用此代码来获取Twitch关于当前流媒体的Api信息。我应该得到有关飘带阵列中所有飘带的信息。 为了“性能”(没关系)我想将所有脚本标签连接到单个字符串而不是触摸DOM 8次。但是不可能以这种方式收集JSON。当我在开发人员工具上检查它时,脚本标签被正确添加,但他们没有向我发送任何JSON。
注释掉代码是它工作的唯一方式。我在创建一个脚本标记并将其.src属性替换为不同的流式传输之前尝试过,但它仅适用于阵列中的第一个流式传输器。
那么告诉我为什么不可能这样做呢?