Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 呈现dijit小部件的最快方法_Css_Render_Dojo - Fatal编程技术网

Css 呈现dijit小部件的最快方法

Css 呈现dijit小部件的最快方法,css,render,dojo,Css,Render,Dojo,渲染dijit小部件的最快方法是什么? 我知道编程方式比声明方式快。() 我有一个加载速度太慢的自定义小部件(它是一个带有组合框、按钮和其他用于添加过滤器等的小dijit小部件的数据网格)。 查看源代码,我看到所有dijit小部件都是以编程方式创建的,但是插入它们的DOM节点也是以编程方式创建的。 这是“正确”的方式吗 我正在尝试加快这个小部件的渲染速度,目前我的选择是将velocity模板(我的公司使用struts2+velocity)与以编程方式创建的小部件(使用placeAt和类似方法将小

渲染dijit小部件的最快方法是什么? 我知道编程方式比声明方式快。()

我有一个加载速度太慢的自定义小部件(它是一个带有组合框、按钮和其他用于添加过滤器等的小dijit小部件的数据网格)。
查看源代码,我看到所有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";