Css 呈现dijit小部件的最快方法
渲染dijit小部件的最快方法是什么? 我知道编程方式比声明方式快。() 我有一个加载速度太慢的自定义小部件(它是一个带有组合框、按钮和其他用于添加过滤器等的小dijit小部件的数据网格)。Css 呈现dijit小部件的最快方法,css,render,dojo,Css,Render,Dojo,渲染dijit小部件的最快方法是什么? 我知道编程方式比声明方式快。() 我有一个加载速度太慢的自定义小部件(它是一个带有组合框、按钮和其他用于添加过滤器等的小dijit小部件的数据网格)。 查看源代码,我看到所有dijit小部件都是以编程方式创建的,但是插入它们的DOM节点也是以编程方式创建的。 这是“正确”的方式吗 我正在尝试加快这个小部件的渲染速度,目前我的选择是将velocity模板(我的公司使用struts2+velocity)与以编程方式创建的小部件(使用placeAt和类似方法将小
查看源代码,我看到所有dijit小部件都是以编程方式创建的,但是插入它们的DOM节点也是以编程方式创建的。 这是“正确”的方式吗 我正在尝试加快这个小部件的渲染速度,目前我的选择是将velocity模板(我的公司使用struts2+velocity)与以编程方式创建的小部件(使用placeAt和类似方法将小部件插入已构建的DOM节点中)结合起来创建DOM节点。
它可以正常工作,但遗憾的是,所有的css类都被dijit覆盖,所以我必须再次覆盖它们,这会导致合理的开销 在模板中,我写了如下内容:
<input id="idOfAnExistingDomNode" class="myCssClass" />
最后一行是必需的,因为myCssClass在创建FilteringSelect期间被覆盖。有没有办法避免这个问题?
或者,也许,我正试图以错误的方式做这件事?我不完全确定“速度模板”这件事。
注意:Dojo版本是1.5,没有,很遗憾,我们无法将其升级到新版本。
请原谅我糟糕的英语。实例化小部件的一个更快的方法通常是在临时div中创建它们,然后将该div移动到DOM上。您是否尝试过分析这个实例化中到底是什么慢?我怀疑是否有太多的时间花在等待数据上,因为一些小部件+一个具有合理pagesize参数的网格不需要很长时间就能加载 至于您的类问题,很奇怪dojo没有混合在现有的类中。也就是说,您可以首先在节点上进行查找,获取class属性,然后将其指定为
创建FilteringSelect时mixin对象中的class属性。若你们这样做了,确保你们用引号把类包装起来,否则旧的IE会拒绝它 谢谢你的建议。然而,问题实际上是加载页面后触发的ajax调用数量太多。
var fieldSelect = new dijit.form.FilteringSelect({
store : jsonStore,
searchAttr : "caption",
labelAttr : "caption",
selectOnClick : true,
value : "Content"
}, "idOfAnExistingDomNode");
fieldSelect.domNode.className += " myCssClass";