我正在为移动设备编写一个小的webapp。
有一个表单要求提供特定项目及其详细信息,用户应该能够插入一个或多个项目及其详细信息。
如果它是一个普通的webapp我会使用带有链接“add one”的ajax,就像gmail对附件一样。在移动设备上我认为使用ajax不是一个好主意,所以我使用“我已经完成”和“添加更多”按钮来加载新页面,列表的其余部分保存在服务器端。这意味着对于用户需要重新加载页面的每个新项目,它很慢并且可能对我的用户来说成本更高。有更好的方法吗?
答案 0 :(得分:1)
您不应该在服务器端保存它;只需定期回发并在服务器上添加新的HTML - 但是将列表存储在返回的HTML中。
所以,例如简化的HTML最初是:
<form>
<input name="info0" type="text" value="" />
<input name="done" type="submit" value="I'm done" />
<input name="more" type="submit" value="Add another" />
</form>
如果用户在“foo”中输入“info0”并选择“Add another”,则回发中返回的HTML现在将是:
<form>
<input name="info0" type="text" value="foo" />
<input name="info1" type="text" value="" />
<input name="done" type="submit" value="I'm done" />
<input name="more" type="submit" value="Add another" />
</form>
关键是在用户完成之前,您不会在服务器端保存任何内容。你可以用同样的方式进行删除,例如使用复选框或每个输入旁边的按钮。
答案 1 :(得分:1)
对不起,我误解了这个问题。我不明白为什么使用AJAX会是一个坏主意 - 只要它是unobtrusive AJAX,使用progressive enhancement的原则。 PE的整体理念是它可以在所有设备上运行。
对于启用了JS的用户,它可以很好地工作。对于那些不这样做的人来说,它仍然可以很好地工作,只需要回发。