我有一个表单,我需要在其中插入一个项目,这是表单的 html。
<form action="test.php" class="form" method="post">
<?php for($i=0; $i<=500; $i++): ?>
<div class="formRow itemList">
<select class="chzn-select" tabindex="2" name="items[]">
<option value="3">Toys</option>
<option value="4">Books</option>
<option value="5">Shirts</option>
<option value="6">iPad</option>
</select>
<span style="width:7%;float:left;margin-left:2%;" style="">
<input type="text" name="quantity[]" class="est_quantity" placeholder="quantity" value="10"/>
</span>
<span style="width:7%;float:left;margin-left:2.5%;" style="">
<input type="text" name="cost[]" class="est_cost" placeholder="cost" value="100"/>
</span>
<span style="width:7%;float:left;margin-left:2.5%;" style="">
<input type="text" name="rate[]" class="est_rate" placeholder="rate" rate="200"/>
</span>
<span style="width:7%;float:left;margin-left:2.5%;" style="">
<input type="text" name="size[]" class="est_size" placeholder="size"/>
</span>
<span style="width:7%;float:left;margin-left:2.5%;" style="">
<input type="text" name="cartonnum[]" class="est_carton_no" placeholder="carton no."/>
</span>
<span style="width:8%;float:left;margin-left:2.5%;" style="">
<input type="text" name="numofcarton[]" class="est_cartons" placeholder="ctns."/>
</span>
<span style="width:8%;float:left;margin-left:2.5%;" style="">
<input type="text" name="qtyctn[]" class="est_qtyctn" placeholder="qty/ctn"/>
</span>
<span style="width:7%;float:left;margin-left:2.5%;" style="">
<input type="text" name="cbm[]" class="est_cbm" placeholder="cbm"/>
</span>
<div class="clear"></div>
<a href="#" class="itemRemove">Remove</a>
</div>
<?php endfor; ?>
</form>
它是这样的。
- 一行有 9 个输入元素。
- 有时我需要输入 300 到 500 个项目。
- 总共有 500 * 9 = 4500 个输入元素。
代码在以下位置进行测试:
- 浏览器:谷歌浏览器 18.0.1025 和 safari 5.1.3
- 操作系统:OSX 10.7.3
- 环境:当地
当我尝试执行代码时,我得到了严重的性能,这是统计数据。
页面加载时间:
- 一般页面加载时间:平均 2.4 秒。
- 应用 css 样式:平均 5.3 秒。
- 应用 css 样式并包含一些 js 库:平均 3.1 秒
- 我不知道为什么在包含 js 库后页面加载时间会减少,我正在使用 jQuery、jQuery ui 和更多插件,如 jQuery Chosen Plugin。
输入元素对鼠标和键盘焦点的响应时间:
这是事情往往会越界的地方。
- 在谷歌浏览器中,当我尝试在元素中输入一些值时,页面会冻结。
- 在 Safari 中,将焦点转移到其他元素时会有 4 秒的延迟。在将几个焦点转移到几个输入元素之后,延迟时间大大减少到几毫秒。
我注意到的奇怪的事情是当我<form>
从代码中删除属性时。在两个浏览器上,性能都得到了改善,几乎没有延迟或没有延迟。我不知道是什么导致了这种行为。
我正在使用此插件动态插入表单元素的行:MultiField
所以我的问题是:
- 如何提高加载时间速度,更重要的是停止导致脚本停止由浏览器执行的奇怪行为?
- 浏览器在使用表单元素时导致此行为的原因是什么。
非常感谢任何可以提高性能、提示或任何可以帮助我提高性能的库类型。
谢谢你。