5

我刚刚在 JQM 中发布我的第一个应用程序。基本上,带有列表视图的地理动态页面。在设计方面没有什么花哨的。所以我真的很喜欢 JQM 的基本外观和感觉。

我还没有用phonegap运行它。我在我的桌面上将它作为一个 web 应用程序在 Firefox 上进行测试,它非常好并且运行顺利。我已经在我的 iphone 3GS 上将它作为 safari 上的 web 应用程序进行了测试,它完全没用:屏幕闪烁,让我想起 33.6K 调制解调器上的 Mosaic 的过渡。

我在 stackoverflow 上看到有很多改进 JQM 的调整,例如不使用转换。但有什么意义呢?

瓶颈是什么?是 JQuery 本身及其对 IE 的处理吗?抱歉,我等不及 JQuery 2.0 版了。

我看到有些人建议使用 zepto.js 作为替代方案。但是 zepto.js 不支持 JQM css。是否有一个简单的解决方案来使用 zepto 而不必重做 JQM 提供的基本设计?

我仍然不想原生,因为我想让我的应用程序在 IOS 和 Android 上运行,而不必学习 Obj-C 并回到 Java。

关于这个有很多讨论,但我看到的最近一次是在六月。

有一些新的选择吗?如果 Jquery 是瓶颈,是否有可能获得一个没有任何不针对 IOS/Android 的内容?

谢谢你。

4

1 回答 1

5

JQM 的想法不仅是针对 iOS/Android,而且是针对所有平台,所以如果你只使用 iOS,你必须做出你不需要的妥协——之前的 JQM 1.1 转换(更好)被放弃了,因为我相信安卓,因为他们失败得太厉害了。

如果您正在寻找瓶颈,我认为在客户端上渲染元素需要时间。假设您有一个列表项:

<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 库,其中包含以增强形式存储为模板的列表项的所有变体。循环遍历列表时,您只需从库中选择列表项,添加动态数据即可完成。

两者都需要大量的摆弄,但是从一些小部件(按钮、控件组)中设置很容易,并且已经节省了大量的渲染时间。

希望这是一个很好的指导,让你继续前进。

于 2012-11-09T15:15:18.770 回答