tl;dr:我想知道有很多(目前超过 100 个,可能高达 1000/2000 或更多)主干 View (作为表格的一个单元格)是否太重了
我正在从事的项目围绕着规划 View 展开。每个用户一行,涵盖一天的 6 个小时,每个小时分为 4 个 1500 万个时段。此计划用于在单击插槽时添加“预订”,并应处理正确插槽的悬停,以及在无法进行预订时处理 - 即。防止用户点击“不可用”插槽。
一个slot无法点击的原因有很多:用户此时没空,或者用户正在预约中;或者应用程序需要在两次预订之间“强制”一个延迟时段。预订(一个 div)呈现在一个插槽(表格的一个单元格)中,并通过调整尺寸,将鼠标悬停在正确数量的插槽中。
所有这些屏幕都由 backbone 处理。因此,对于我徘徊的每个时段,我需要检查我是否可以在这里进行预订。截至目前,我通过玩弄插槽上的 data 属性来使用它:添加保留对象时,所覆盖的插槽“通过(除其他外)保留对象(主干 View )得到增强对象)。
但在某些情况下我现在不太了解,它混淆了,当保留 View 被删除时,槽没有被“清理”:之前的 class 是没有正确重置。这可能是我做错了或做错了,但这只会变得更重;我想我应该在这里使用另一类 Backbone View ,但恐怕 View 对象的插槽数量和其中的数量会很高并导致性能问题。我对 js perf 不太了解,所以我想在跳上那列火车之前得到一些反馈。关于如何执行此操作的任何其他建议也将非常受欢迎。
感谢您的宝贵时间。如果这还不够清楚,请告诉我,我会尝试重新措辞。
最佳答案
我们有一个相当复杂的 backbone.js 应用程序,在给定时间可能有数千个 View 。我们的瓶颈主要来自未正确删除的 View 的内存泄漏或不必要地重新渲染 View 的事件驱动渲染。也就是说,实际观看次数似乎影响不大。主干 View 非常轻量级,所以只要您没有太多事件绑定(bind)到它们,就不是什么大问题。
您可能会遇到性能问题,但 View 可能不是问题。
不过,如果您确实使用了数千个 View ,您可能想要做的是将初始渲染隐藏到一个大的“.html()”调用中。为此,您可以根据 View 的 cid 为每个 View 元素提供一个 id,然后连接 View 的 html 字符串,然后在每个 View 上使用 setElement 再次查找其元素。
关于javascript - 很多 Backbone 意见 - 性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11744634/
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有, 也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g