草庐IT

渲染图

全部标签

javascript - 更改属性时延迟渲染 dom 元素

我目前在一次更新大量dom元素的属性时遇到性能问题。似乎每次我更改属性时,dom元素都会重新呈现。无论如何我可以延迟元素的渲染,直到我的所有更新都发生了吗?它在FF3和3.5中似乎比IE7和8慢很多,这与我的预期相反。下面是我正在做的一个例子。vart;for(vari=0;i问题是“tiles”中的项目数最多可以有100个dom元素。这才是性能问题真正体现出来的地方。 最佳答案 同意@Crimson但我认为最好隐藏您要更新的所有元素的父级,如果它们没有独占父级,请尝试创建一个。这样只有两个reflows会发生,一个发生在您隐藏ti

javascript - Backbone(还有 Marionette)尝试在集合开始时显示新记录,而不重新渲染整个集合

我正在尝试在集合的开头呈现一个项目(想象一下,如果您在facebook上发布了一条新记录)当我来add(response,{at:0});到集合中,记录在0处正确插入到集合中,但呈现在项目列表的底部。我很困惑,因为我以前有这个工作,但我认为我在做的是一种hacky风格,只是重置并重新渲染集合。我想知道处理这个问题的简洁方法是什么,我应该在哪里绑定(bind)逻辑。是在集合的add方法上吗?目前这是空的(但我正在使用Marionette),我觉得这会覆盖backbone的默认渲染。我如何再次控制它,以便我可以正确地将我的新项目添加到列表中,而无需全部销毁并重新创建它。

javascript - 使用 React Router 和 Redux Simple Router 的 onEnter Transitions 不要渲染新路由的组件

我有一个使用react@0.14、redux@3.05、react-router@1.0.3和redux-simple-router@2.0.2的应用程序。我正在尝试根据商店状态为我的一些路线配置onEnter转换。转换Hook成功触发并将新状态推送到我的商店,这会更改url。但是,在页面上呈现的实际组件是来自路由匹配的原始组件处理程序,而不是新url的新组件处理程序。这是我的routes.js文件的样子exportdefaultfunctionconfigRoutes(store){constauthTransition=functionauthTransition(location

javascript - 如何将剪切面渲染为实体对象

在Three.js中,我有一个3d对象,我在其中使用局部剪切平面来仅渲染对象的一部分。但是,由于3d对象是“空心的”(意味着只有外表面被渲染),当我们从该表面剪下任何东西时,我们可以“看到”对象。这是我的意思的一个例子,clippingacorneroffacube.请注意我们如何看到对Angular的背面。我想赋予物体实体的外观。基于thisissue,似乎实现此目的的最佳方法是在剪切区域上创建一个表面,从而盖住孔并使对象看起来不像是空心的。我的问题是,我怎么知道在哪里构建这个表面?Three.js是否提供了一种方法来获取在平面和任意表面之间相交的顶点列表?如果没有,我自己该如何解决

javascript - ReactJS:即使在重新渲染组件后复​​选框状态仍然存在

我创建了一个JSfiddle在这个fiddle中,最初根据传递给组件的props呈现一个复选框列表。单击Re-render按钮时,同一组件将使用一组不同的props进行渲染。现在,请按照以下步骤-加载jsfiddle选中任何一个复选框(假设我选中了第二个和第三个复选框)点击重新渲染按钮即使在使用新的props渲染组件后,您选中的复选框的状态仍保持不变(第2个和第3个仍处于选中状态)为什么会这样?我如何使用新的Prop集重新渲染组件,以便复选框的状态不会持续存在。 最佳答案 因为React的diffalgorithm很聪明。重新渲染新

javascript - ExtJS 数据网格列渲染器具有多个值

我想知道在ExtJS中是否有可能将数据源的多个值提供给列的渲染器。例如对于“Actions”列,id被传递给渲染器。但是我需要将user_id和id都传递给渲染器。我该怎么做?table_cols=[{header:"UserID",width:30,sortable:true,dataIndex:'user_id'},{header:"Actions",width:60,sortable:false,dataIndex:'id',renderer:function(val){//IFUSERIDMEETSACONSTRAINTPRINTTHEID}}];谢谢。

javascript - ImageUtils.loadTexture 与 Canvas 渲染器中的回调

我正在使用three.js修订版53在CanvasRenderer(Win7上的IE)中加载纹理并为onLoad事件添加回调时,纹理未显示。当我删除回调函数时,纹理会按预期显示://添加回调不工作varmaterial=newTHREE.MeshBasicMaterial({map:THREE.ImageUtils.loadTexture('text_build.png',{},function(){//dosomething})});varplane=newTHREE.Mesh(newTHREE.PlaneGeometry(135,135),material);plane.overd

javascript - 如何监控浏览器中的渲染时间?

我在一个内部公司系统上工作,该系统有一个使用Tomcat的Web前端。如何监控特定页面在浏览器(IE6)中的呈现时间?我希望能够将结果记录在日志文件中(单独的日志文件或Tomcat访问日志)。编辑:理想情况下,我需要监视访问页面的客户端上的呈现。 最佳答案 NavigationTimingAPI在除Safari之外的现代浏览器(IE9+)中可用:functiononLoad(){varnow=newDate().getTime();varpage_load_time=now-performance.timing.navigation

Cesium 中的离屏渲染

Cesium中的离屏渲染本文参考了众多文章,均列在了最后。先感谢各位的分享精神,如觉有冒犯,请与我联系。部分内容来自个人理解,欢迎指正交流。为了达到更加真实的渲染效果或其他计算需求,很多时候需要利用被渲染物体在其他状态下(比如通过另一相机渲染)的中间渲染结果,处理到最终显示的渲染场景中。这种中间渲染结果,就保存在帧缓冲区对象(FrameBufferObject,FBO)中,包含颜色缓冲区和深度缓存区。由于其结果并不直接被显示出来,所以这种技术也被称为离屏渲染(Off-ScreenRendering)。在深入了解Cesium的离屏渲染前,需要先了解WebGL的渲染过程。WebGL渲染过程大家都知

javascript - Electron:从 main 调用渲染器函数

我在本地存储中有一些数据必须在app.quit()上删除。但是我从主要过程中看不到这样做的方法。有没有办法从main调用renderer函数?我知道varremote=require('remote');但它似乎只朝着错误的方向发展。 最佳答案 您可以通过webContents.send将消息从主进程发送到渲染器进程,如此处文档中所述:https://github.com/atom/electron/blob/master/docs/api/web-contents.md#webcontentssendchannel-arg1-ar