解决 UI 渲染 与 Ajax 同步的线程阻塞, 造成页面卡顿问题

develop
就眠仪式 2020-08-11 09:25:43 +08:00
parent e0e7ae8f2a
commit ee45899beb
2 changed files with 75 additions and 65 deletions

View File

@ -14,14 +14,14 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
var bodyTab; var bodyTab;
var pearAdmin = new function() { var pearAdmin = new function() {
this.render = function() { this.render = function() {
var param = getData(); readConfig().then(function(param){
this.keepLoad(param); pearAdmin.keepLoad(param);
this.logoRender(param); pearAdmin.logoRender(param);
this.menuRender(param); pearAdmin.menuRender(param);
this.bodyRender(param); pearAdmin.bodyRender(param);
this.themeRender(param); pearAdmin.themeRender(param);
})
} }
this.logoRender = function(param) { this.logoRender = function(param) {
@ -253,53 +253,6 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
} }
}) })
function compatible() {
if ($(window).width() <= 768) {
sideMenu.collaspe();
if ($(".pear-admin").is(".pear-mini")) {
$(".layui-icon-spread-left").addClass("layui-icon-shrink-right")
$(".layui-icon-spread-left").removeClass("layui-icon-spread-left")
$(".pear-admin").removeClass("pear-mini");
} else {
$(".layui-icon-shrink-right").addClass("layui-icon-spread-left")
$(".layui-icon-shrink-right").removeClass("layui-icon-shrink-right")
$(".pear-admin").addClass("pear-mini");
}
}
}
function screenFun(num) {
num = num || 1;
num = num * 1;
var docElm = document.documentElement;
switch (num) {
case 1:
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
} else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
} else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
} else if (docElm.msRequestFullscreen) {
docElm.msRequestFullscreen();
}
break;
case 2:
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
break;
}
return new Promise(function(res, rej) {
res("返回值");
});
}
$("body").on("click", ".setting", function() { $("body").on("click", ".setting", function() {
var bgColorHtml = var bgColorHtml =
@ -364,16 +317,6 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
} }
}); });
}) })
function getData() {
$.ajaxSettings.async = false;
var data = null;
$.getJSON("pear.config.json?fresh=" + Math.random(), function(result) {
data = result;
});
$.ajaxSettings.async = true;
return data;
}
$('body').on('click', '[data-select-bgcolor]', function() { $('body').on('click', '[data-select-bgcolor]', function() {
var theme = $(this).attr('data-select-bgcolor'); var theme = $(this).attr('data-select-bgcolor');
@ -391,6 +334,24 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
var color = getColorById(colorId); var color = getColorById(colorId);
pearAdmin.colorSet(color.color); pearAdmin.colorSet(color.color);
}); });
function getData() {
$.ajaxSettings.async = false;
var data = null;
$.getJSON("pear.config.json?fresh=" + Math.random(), function(result) {
data = result;
});
$.ajaxSettings.async = true;
return data;
}
function readConfig(){
var defer = $.Deferred();
$.getJSON("pear.config.json?fresh=" + Math.random(), function(result) {
defer.resolve(result)
});
return defer.promise();
}
function getColorById(id) { function getColorById(id) {
var color; var color;
@ -431,6 +392,55 @@ layui.define(['table', 'jquery', 'element', 'form', 'tab', 'menu', 'frame'],
return "<div class='select-color'><div class='select-color-title'>主题色</div><div class='select-color-content'>" + return "<div class='select-color'><div class='select-color-title'>主题色</div><div class='select-color-content'>" +
colors + "</div></div>" colors + "</div></div>"
} }
function compatible() {
if ($(window).width() <= 768) {
sideMenu.collaspe();
if ($(".pear-admin").is(".pear-mini")) {
$(".layui-icon-spread-left").addClass("layui-icon-shrink-right")
$(".layui-icon-spread-left").removeClass("layui-icon-spread-left")
$(".pear-admin").removeClass("pear-mini");
} else {
$(".layui-icon-shrink-right").addClass("layui-icon-spread-left")
$(".layui-icon-shrink-right").removeClass("layui-icon-shrink-right")
$(".pear-admin").addClass("pear-mini");
}
}
}
function screenFun(num) {
num = num || 1;
num = num * 1;
var docElm = document.documentElement;
switch (num) {
case 1:
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
} else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
} else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
} else if (docElm.msRequestFullscreen) {
docElm.msRequestFullscreen();
}
break;
case 2:
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
break;
}
return new Promise(function(res, rej) {
res("返回值");
});
}
exports('admin', pearAdmin); exports('admin', pearAdmin);
}) })

View File

@ -46,7 +46,7 @@
<div class="layui-side layui-bg-black"> <div class="layui-side layui-bg-black">
<!-- 顶 部 图 标 --> <!-- 顶 部 图 标 -->
<div class="layui-logo"> <div class="layui-logo">
<img class="logo" src="" /> <img class="logo"></img>
<span class="title"></span> <span class="title"></span>
</div> </div>
<!-- 侧 边 菜 单 --> <!-- 侧 边 菜 单 -->