我目前正在获得一个Viewertoken,它可以让我按下按钮并在屏幕上建立3D建筑物的幻灯片对话框,我可以查看模型并检查要显示建筑物中的哪些模型。 但是,我有一个大建筑物,大约需要0.8G的内存。每当我关闭幻灯片对话框。它保持不变,直到我再次单击该按钮并增加另一个0.8G。
我不太确定自己哪里出了问题,或者我错过了什么,所以我想在这里寻求一些解释。
export class Viewer {
private static $viewer: JQuery;
public static View3D(type: string, id: string): void {
var url = "";
if (type == "Project") {
url = "api/v1/show3d/ViewerToken/" + id;
}
else if (type == "Building") {
url = "api/v1/show3d/ViewerToken/Building/" + id;
}
$.ajax({
url: Common.appPath + url,
dataType: "JSON",
method: "GET",
}).done(function (data: Models.IViewerToken) {
NTI.Common.Core.SlideDialog.show(
{
hideOkButton: true,
dataUrl: "",
title: "View building",
icon: "nw-preview",
}
);
var clientHeight = $(".n1d").height() - $(".n1d.navbar.navbar-default").height() - 4;
Viewer.$viewer = $("<div style=\"height: " + clientHeight.toString() + "px;\">");
$(".dialogContent").append(Viewer.$viewer).append(Viewer.buildModelSelector(data.Revisions));
Viewer.$viewer.viewer('loadUrl', data.Url);
});
}
private static buildModelSelector(models: Models.IViewerRevision[]): JQuery {
var $ModelSelector = $("<ul class=\"toggleshow3dModels\">");
$.each(models, (i, m) => {
var $li = $("<li>");
var $label = $("<label for=\"" + m.ModelId + "\">");
$li.append($label);
$label.append($("<input id=\"" + m.ModelId + "\" checked=\"checked\" type=\"checkbox\" name=\"model\" value=\"" + m.ModelId + "\">")).append($("<span>" + m.ModelName + "</span>"));
$ModelSelector.append($li);
});
$ModelSelector.on("change", "input", (x: Event) => {
var $input = <HTMLInputElement>event.target
Viewer.$viewer.viewer($input.checked ? 'showModel' : 'hideModel', $input.value);
});
return $ModelSelector;
}
}
public static View3d() {
Viewer.View3D("Building", id);
}