代码拉取完成,页面将自动刷新
接口返回json数据,格式化后有一万多行,造成页面卡死,swagger和bootstrap-ui没有这个问题
这不是正常吗?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Swagger官方Ui能显示很正常,他就没有格式化处理,一个rawtext直接显示
其实要改也容易,就是判断数据量的大小,数据太大就不格式化显示了
问题原因找到了,主要有两点:
1、当返回大数据量时,组件中会重新计算ace编辑器的高度,然后进行重新赋值,代码如下:
resetEditorHeight() {
var that = this;
//重设高度
setTimeout(() => {
var length_editor = that.editor.session.getLength();
if (length_editor == 1) {
length_editor = 15;
}
if (length_editor < 15) {
if (that.debugResponse) {
length_editor = 30;
} else {
length_editor = 15;
}
}
if (length_editor > 20) {
if (!that.debugResponse) {
length_editor = 20;
}
}
var rows_editor = length_editor * 16;
//此处重置高度
that.editorHeight = rows_editor;
}, 10);
}
大数据量时,重置ace的editorHeight属性会造成卡死
2、我们给ace编辑器加入了一个辅助开发者的功能,在右侧对每一个属性进行文档说明显示,这个也会造成当大数据返回时,渲染接口属性说明时计算不过来.如下图的效果:
针对上面2点,在新版本中的解决方案如下
针对第1点,给ace设置最大重置高度2000,当通过返回回来的计算文本超过最大高度时,默认设置最大高度
var rows_editor = length_editor * 16;
if(rows_editor>2000){
rows_editor=2000;
}
that.editorHeight = rows_editor;
针对第二点,当返回的数据量行数超过200行时,不显示文档的右侧属性说明
showEditorFieldDescription(p) {
var that = this;
if(KUtils.checkUndefined(p)){
if(parseInt(p)<=200){
//如果超过200行,不显示属性的字段说明
//需要延时1s处理
setTimeout(() => {
that.showEditorFieldWait();
}, 100);
}
}
}
2.0.5 已发布
登录 后才可以发表评论