我正在制作我的第一个网站,我正在努力学习如何有效地做事。我现在如何处理我的Ajax调用似乎效率不高,作为我的策略示例,我将展示如何过滤表:
namespace DocumentPortalShared.Models
{
public abstract class BaseItem
{
public int Id { get; set; }
public int UploadRequestId { get; set; }
public int ItemTypeId { get; set; }
public ItemType ItemType { get; set; }
}
}
FilterTable是中间件(express)中的一个函数,它将Select值作为参数并执行查询(%%返回all),将结果设置为名为ArrayOfNames的数组,并呈现一个名为Table.html的html文件ArrayOfNames也传入了。 Table.html文件由此组成。
$.ajax({
'url' : '/FilterTable?Name='+$('#NameSelect').va,
'type' : 'GET',
},
'success' : function(data) {
$('#TableBody').html(data);
},
'error' : function(request,error)
{
}
});
<select id="NameSelect">
<option value="%%">All</option>
<option value="Ryan">Ryan</option>
<option value="Jason">Jason</option>
<option value="David">David</option>
<option value="Peter">Peter</option>
</select>
<table style="width:100%">
<thead>
<tr>
<th>Firstname</th>
</tr>
</thead>
<tbody id="TableBody">
<% ArrayOfNames.forEach(function(output){%>
<tr>
<td><%=output.name%></td>
</tr>
<%});%>
</tbody>
</table>
我基本上只是重新渲染副本并在主要部分替换它,我可以看到这是一个问题,因为所有的html代码一次又一次地发送,我认为最好在主要的动态HTML代码并获得新的变量并告诉他们在客户端重新投降。这可能吗?
模板引擎是EJS。当想要加载更多行时,我会做类似的事情但只是附加。