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 提供的基本设计?

我仍然不想原生,因为我想让我的应用程序在 iosandroid 上运行,而不必学习 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">&nbsp;</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 移动替代品(瓶颈是啥?)的主要内容,如果未能解决你的问题,请参考以下文章

$.browser 的替代品是啥

ExtJS 的替代品是啥?

Selectable() Jquery 移动替代

jquery移动页面导航替代

jQuery scrollTop() 在移动浏览器上滚动 DIV 时不起作用,替代方案?

XCTAssertEqualObjects 的替代品是啥?