0

我正在通过 AJAX 更新带有一些按钮的列表。我的功能一般工作正常,但一段时间后会产生白屏。当我单击按钮并使用后退按钮并重复几次时,就会发生这种情况。当我使用 AJAX 刷新运行时提供的大约 10 个按钮时,单击几下后它会崩溃。当我刷新假设 20 个按钮时,它会在我第一次点击后退按钮时立即崩溃。应用程序崩溃时,LogCat 什么也没说。我尝试用 livequery 调用替换 button() 调用,该调用有效但一段时间后会产生相同的崩溃。

我正在开发一个原生应用程序。如果我将它作为 Firefox 中的网络应用程序进行尝试,它可以完美运行而不会崩溃。

我不确定我的问题是否与可用内存有关。我正在使用三星 Galaxy Ace 进行测试,它大约有。剩余 50 MB 内存和 1 GB SD 卡。

$(".warenkorb_class").click(function(e) {
      e.stopImmediatePropagation();
      e.preventDefault();
      $.post("http://mydomain/backend.php",{             
            action: "warenkorb", kunden_id: $local_kunden_id },
            function(data) {
        $.mobile.changePage("#warenkorb");
        $("#warenliste").html(data);
            $("#warenliste").listview("refresh");
            $(".warenliste_button_class").button();
        }, "html");
      });

我是android开发的新手,我已经为这个问题苦苦挣扎了几天,如果有人能帮助我,我会很高兴。

谢谢和问候, 弗洛里安

编辑:这是创建按钮代码的 backend.php 部分:

echo"<tr>";
echo utf8_encode("<td><a class='delete_button' href='#warenkorb' data-role='button' data-icon='delete' data-iconpos='notext' data-mini='true' data-inline='true' data-theme='b' id='1_$bestellungen_id'>Position löschen</a></td>");
echo utf8_encode("<td><a class='minus_button' href='#warenkorb' data-role='button' data-icon='minus' data-iconpos='notext' data-mini='true' data-inline='true' data-theme='b' id='2_$bestellungen_id'>eins weniger</a></td>");
echo"<td><a class='warenliste_button' href='#warenkorb' id='3_$bestellungen_id' data-mini='true'>$bestellungen_anzahl</a></td>";
echo utf8_encode("<td><a class='plus_button' href='#warenkorb' data-role='button' data-icon='plus' data-iconpos='notext' data-mini='true' data-inline='true' data-theme='b' id='4_$bestellungen_id'>eins mehr</a></td>");
echo utf8_encode("<td><a class='warenliste_button' href='#warenkorb' id='5_$bestellungen_id' data-mini='true' data-inline='true'>$produkte_bezeichnung</a></td>");
echo "</tr>";
4

1 回答 1

0

我会看看优化您的代码,尝试删除类选择器并用 id 选择器替换它们,这在您的选择器中不可能更具体,即做 button.warenliste_button_class。

我会对其进行排序,因为崩溃可能是由于脚本在执行时内存不足。还检查 firebug/console 以检查并查看正在发生的事情,检查长时间运行的脚本,发布的大量数据等。

查看此链接以获取更多优化提示

http://www.archer-group.com/2011/technology/jquery-javascript-optimization

如果没有更多信息,例如正在运行 jquery 的功能和数据,我没有更多建议。

于 2012-06-25T13:18:25.583 回答