- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我被要求开发一个包含 6 个选项卡的选项卡面板,每个选项卡包含 30 到 40 个元素。每个选项卡都作为一个表格来累积一个人的详细信息,最后一个选项卡是一个摘要页面,显示在前五个选项卡中输入的所有值。我被要求将摘要作为选项卡提供,因为用户可以在任何情况下导航到摘要选项卡并查看他/或查看摘要输入的详细信息。我正在遵循 ExtJs MVC 模式。有效负载来自/去往 Spring MVC 应用程序。 (JSON)
在 Controller 中使用标签更改事件,如果新标签是摘要,我将呈现具有显示隐藏功能的页面。
方法 1:在 Controller 中,我使用了 Ext.getCmp('选项卡内每个元素的 ID') 并根据用户输入的值显示隐藏摘要选项卡中的组件。这在 IE8 中杀死了我的应用程序,弹出一条消息说“脚本很慢,等等......”我必须点击 NO 5 到 6 次才能使摘要选项卡呈现和显示页面。
方法 2:在 Controller 中,我使用 ref 和 selectos 来访问选项卡中的所有项目。我已将 itemId 用于摘要选项卡中的每个字段。像 this.getXyz().show()
。我以为会很快。是的,它在谷歌浏览器中。但与 goolge chrome/firefox 相比,我在 IE8 中的应用程序速度较慢
关于此的任何建议和减少页面呈现时间的计划。摘要页面有 1000 多个字段。请随时表达你的想法或对此提出一些想法。
谢谢!!
最佳答案
我有一些建议你可以试试。首先,回答你的标题,我认为在 javascript 中查找组件的最快的简单方法是构建 HashMap 。像这样:
var map = {};
Ext.each(targetComponents, function(item) {
map[item.itemId] = item;
});
// Fastest way to retrieve a component
var myField = map[componentId];
对于渲染时间,请确保每次在子组件上调用 hide
或 show
时不会更新布局/DOM。使用 suspendLayouts
这样做:
summaryTabCt.suspendLayouts();
// intensive hide-and-seek business
// just one layout calculation and subsequent DOM manipulation
summaryTabCt.resumeLayouts(true);
最后,如果尽管您尽了最大努力仍无法缩短处理时间,请进行损害控制。也就是说,避免一直卡住 UI,并让浏览器告诉用户您的应用已死。
您可以使用setTimeout
来限制您的脚本一次占用执行线程的时间。该间隔会让浏览器有时间处理 UI 事件,并防止它认为您的脚本陷入无限循环。
这是一个例子:
var itemsToProcess = [...],
// The smaller the chunks, the more the UI will be responsive,
// but the whole processing will take longer...
chunkSize = 50,
i = 0,
slice;
function next() {
slice = itemsToProcess.slice(i, i+chunkSize);
i += chunkSize;
if (slice.length) {
Ext.each(slice, function(item) {
// costly business with item
});
// defer processing to give time
setTimeout(next, 50);
} else {
// post-processing
}
}
// pre-processing (eg. disabling the form submit button)
next(); // start the loop
关于javascript - ExtJs 4.2 引用选择器 vs Ext.getcmp() vs Ext.ComponentQuery.query(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408516/
以下哪一个更好(EJB 3 JPA) //查询 一个)。 getEntityManager().createQuery("select o from User o"); //命名查询,其中 findA
也许其他人和我有同样的问题。我遇到了错误: Cannot execute queries while other unbuffered queries are active.Consider usin
我的代码 package com.tl666.elasticsearch.pojo; import lombok.AllArgsConstructor; import lombok.Data; imp
简短版:我想查询另一个查询的结果,以便选择更有限的结果集。但是,添加 where 子句会重写第一个查询而不是处理结果,因此我得不到我需要的答案。 详情:我有两个模型,支票和蜱虫。检查 has_many
我正在尝试使用 Doctrine 在 Symfony 框架中执行原始查询。 这是代码: class MessagesHandler { /** @var \Doctrine\Common\Pe
我正在运行以下两个语句: 首先是 A) 它做它需要做的事情并工作: SELECT itemColumn ,valueColumn ,label FROM rstCombinedChartD
我有一个脚本来查询数据库以获取订单信息,然后查询该查询以获取订单总数。代码看起来像这样。 SELECT oi.OrderQty, oi.ItemPrice FROM Ord
这个问题在这里已经有了答案: MySQL Insert query doesn't work with WHERE clause (31 个答案) 关闭 4 年前。 我正在从 php 更新数据库中的
在使用 Skygear JS SDK 时,查询是否返回数组? readDummy: function(){ const Test = skygear.Record.extend('
我想在一个表上运行 MySQL 查询,然后在该表上运行子查询。我有一个对象列表。每个对象都有一个主要版本和一个次要版本。对于一个对象,我试图找到该对象的“最后版本”:这意味着我想找到该对象的最大值(主
我正在尝试在 pod 中启动 prometheus,并在 k8s 中使用持久卷。 当我启动 pod 时,我看到: level=info ts=2021-09-12T13:58:13.120Z ca
基本上,我从 kube-prometheus-stack 安装了 Prometheues-Grafana使用提供的 helm chart repo prometheus-community # hel
是否可以根据另一个查询的结果在 TFS 2010 中创建新查询? 例如,一个(父)查询选择位于某个工作项下的所有工作项(假设 ID=5 的工作项)。现在我想创建其他查询,从第一个查询的结果中选择所有错
在 Delphi 中,每当我使用 TQuery 对数据库执行 SELECT 时,我都会在 Query.Open 后面加上 try..finally,并在finally 部分中使用 Query.Clos
我只是从一台服务器移动到另一台服务器。我的脚本在旧服务器上运行良好,但是我开始在新服务器上收到此错误: "Declaration of ezSQL_mysql::query() should be c
我想问一下有什么区别 for row in session.Query(Model1): pass 和 for row in session.Query(Model1).all():
如何使用注释通过spring-data-elasticsearch进行@Query(value =“{” query“:”“}”)的聚合? 最佳答案 您不能使用@Query注释来完成此操作,该注释的唯
我有一个对可变字符串执行 LIKE 条件的查询: 当变量包含一个包含单引号的单词时,返回一些结果,但不是全部: SELECT ID FROM MyQoQ
我有我的查询范围,它返回数百条记录。我需要在 Controller 中使用不同的过滤器查询这个集合。 我怎样才能做到这一点?可能吗? 查询范围: Client::join('transactions_
我有这样的数据库模式 用户 编号 初中生 文档 编号 标题 user_id(用户的外键) 模式(可以接受 PUBLIC 或 PRIVATE) 我想检索所有公开的文档和属于给定用户(矩阵)的所有文档 我
我是一名优秀的程序员,十分优秀!