Утечка памяти при использовании viewertoken из API - PullRequest
0 голосов
/ 29 августа 2018

В настоящее время я получаю токен Viewer, который позволяет мне нажимать кнопку и выводить на экран слайд-диалог с трехмерным зданием на экране, чтобы я мог просматривать модели и отмечать, какие из моделей в здании я хочу показать. Тем не менее, я получил большое здание, которое занимает около 0,8 ГБ памяти. и всякий раз, когда я закрываю слайддиалог. оно остается прежним, пока я снова не нажму кнопку и не увеличу еще 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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...