jquery 移动替代品(瓶颈是啥?)
Posted
技术标签:
【中文标题】jquery 移动替代品(瓶颈是啥?)【英文标题】:jquery mobile alternatives (and what is the bottleneck ?)jquery 移动替代品(瓶颈是什么?) 【发布时间】:2012-10-29 13:49:06 【问题描述】:我刚刚在 JQM 中发布我的第一个应用程序。基本上,带有列表视图的地理动态页面。在设计方面没有什么花哨的。所以我真的很喜欢 JQM 的基本外观和感觉。
我还没有用 phonegap 运行它。我在我的桌面上将它作为一个 web 应用程序在 Firefox 上进行测试,它非常好并且运行顺利。我已经在我的 iphone 3GS 上将它作为 safari 上的 web 应用程序进行了测试,它完全没用:屏幕闪烁,让我想起 33.6K 调制解调器上的 Mosaic 的过渡。
我在 *** 上看到有很多改进 JQM 的调整,例如不使用转换。但有什么意义呢?
什么是瓶颈?是 JQuery 本身及其对 IE 的处理吗?抱歉,我等不及 JQuery 2.0 版了。
我看到有些人建议使用 zepto.js 作为替代方案。但是 zepto.js 不支持 JQM css。是否有一个简单的解决方案来使用 zepto 而不必重做 JQM 提供的基本设计?
我仍然不想原生,因为我想让我的应用程序在 ios 和 android 上运行,而不必学习 Obj-C 并回到 Java。
对此进行了多次讨论,但我看到的最新讨论是在 6 月。
是否有一些新的选择?如果 Jquery 是瓶颈,是否有可能获得一个没有任何不针对 IOS/Android 的内容?
谢谢。
【问题讨论】:
【参考方案1】:JQM 的理念不仅是针对 iOS/Android,还针对所有平台,因此如果您只使用 iOS,则必须做出不需要的妥协 - JQM 1.1 之前的过渡(要好得多)是我相信是因为 Android 而下降,因为他们失败得太厉害了。
如果您正在寻找瓶颈,我认为在客户端渲染元素需要时间。假设您有一个列表项:
<li><a href="some">link</a></li>
哪个 JQM 将更改为
<li data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="div" data-icon="arrow-r" data-iconpos="right" data-theme="c" class="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-btn-up-c">
<div class="ui-btn-inner ui-li">
<div class="ui-btn-text">
<a href="index.html" class="ui-link-inherit">Acura</a>
</div>
<span class="ui-icon ui-icon-arrow-r ui-icon-shadow"> </span>
</div>
</li>
由于这是在客户端上为每个列表项完成的,因此渲染内容需要时间,而在桌面上完美运行的元素突然需要 2-3 秒才能在糟糕的 Android 上渲染。
第一个解决方法是发送 enhanced HTML
并尽量不必调用 trigger("create")
这样做可能会松散元素绑定,或者您将不得不更改 JQM 以提供仅事件绑定模式,我'我在需要的时候做。
另一个想法是将小部件库存储为可配置的增强标记。因此,您将拥有一个 listview 库,其中包含以增强形式存储为模板的列表项的所有变体。循环遍历列表时,您只需从库中选择列表项,添加动态数据即可完成。
两者都需要大量的摆弄,但设置一些小部件(按钮、控件组)很容易,并且已经节省了大量的渲染时间。
希望这是一个很好的指导。
【讨论】:
我不知道我是否也可以用他们的 onclick() 等效项替换一些 .on('click' 但我也会研究一下。我不确定这对调用 $.mobile.changePage() 时屏幕闪烁,但您的输入让我想继续探索 JQM。我会在这里报告任何改进 jqm 1.1 中引入了“白色闪光”。之前,当您更改页面时,JQM 首先需要滚动回当前页面的顶部,然后在 css:top=0 处插入新页面。如果没有滚动顶部,新页面将插入到您当前的滚动位置。当 JQM 滚动到白色窗帘后面的顶部时,新的白色闪光灯只是为了“覆盖”JQM。 我不知道如何将答案标记为已选中...页面上没有任何东西可以远程执行类似的操作。对不起。 见这里:i.stack.imgur.com/uqJeW.png。只需单击复选标记,它就会变为绿色 = 接受答案。如果您发现答案非常有用/非常糟糕,您也可以投票/否决(arrwos top/bottom)。 我不能投票(我需要声望!!!啊啊啊啊)但我点击了绿色箭头。谢谢。以上是关于jquery 移动替代品(瓶颈是啥?)的主要内容,如果未能解决你的问题,请参考以下文章