gpt4 book ai didi

extjs - 使用 Ext.Loader.loadScript 加载后可以卸载 javascript 文件吗?

转载 作者:行者123 更新时间:2023-12-04 02:50:33 26 4
gpt4 key购买 nike

如果用户选择某个选项,我只需要三个.js 库。它是这样加载的。 (并称为“var motion = bd.code.tcCrowdSim.wglRndr(a,b)”。使用后是否可以卸载?tia

Ext.define('bd.code.tcCrowdSim', {

statics: {
wglRndr: function (caller, data) {
this.preLoader(caller, data);
},

preLoader: function(caller, data) {
Ext.Loader.loadScript({
url: 'js/Three.js',
scope: this,
onLoad: function() {
Ext.Loader.loadScript({
url: 'js/ShaderExtrasCrowd.js',
scope: this,
onLoad: function() {
Ext.Loader.loadScript({
url: 'js/PostProcessingCrowd.js',
scope: this,
onLoad: function() {
this.crowd2(caller, data);
}
})
}
})
}
})
},

crowd2: function(caller,data) { .....

.... 不确定编辑原始答案或在特定答案中添加评论是最好的沟通方式吗?
init : function(){
var len = $('script[src*="js/Three2.js"]').length;
if (len === 0) {
console.log('SCRIPNOTLOADED');
this.preLoader(this.caller, this.data); // preLoader.onLoad calls doScene
}
else{
this.doScene(this.caller, this.data);
}
},

代码检测js是否加载,并添加
preLoader: function(caller, data) {
Ext.Loader.setConfig({
preserveScripts: false
})
Ext.Loader.loadScript({ .....

每次提示正在刷新脚本时都强制加载?因为它是用
this.motion = bd.code.tcCrowdSim.wglRndr(a,b)

来自 Deft ViewController,想知道何时应用“删除和可选垃圾收集异步加载的脚本为假”?从开销上看,包含所有 webGL/Threejs 内容的 Canvas 对象是在模态的 extjs 弹出窗口上创建的,因此用户关闭窗口以继续。在这一点上说没有关联的 html/dom 足迹是真的吗?。也许这比加载两个版本的 ThreeJS 更重要?

最佳答案

Loader.loadScript()追加一个新的 <script>标记到 DOM(在本例中为 HTML 头),然后浏览器运行该脚本。

您可以从 DOM 中删除脚本,但在大多数浏览器中,AFAIK,加载脚本中声明的变量/函数/对象仍然可用。您可以 delete他们。

这是一个测试,从 ExtJS 加载 jQuery(我不知道你为什么要这样做;):

http://jsfiddle.net/ny49m/5/

Ext.Loader.setConfig({
enabled:true
});

console.log(typeof jQuery == 'undefined'); //true

Ext.onReady(function(){

Ext.Loader.loadScript({

url:'http://code.jquery.com/jquery-1.10.1.min.js',

onLoad:function(){

console.log(typeof jQuery == 'undefined'); //false

//remove the script tag from the DOM:
var scripts = document.getElementsByTagName('script');
for(var i=0; i<scripts.length; i++){
if(scripts[i].src.indexOf('jquery') != -1){
scripts[i].parentNode.removeChild(scripts[i]);
}
}

console.log(typeof jQuery == 'undefined'); //false

delete(jQuery);

console.log(typeof jQuery == 'undefined'); //true
}
});

});

关于extjs - 使用 Ext.Loader.loadScript 加载后可以卸载 javascript 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17867661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com