如何改进此ajax脚本以提高扩展效率

时间:2017-02-02 10:18:35

标签: javascript jquery ajax node.js express

我正在制作我的第一个网站,我正在努力学习如何有效地做事。我现在如何处理我的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。当想要加载更多行时,我会做类似的事情但只是附加。

0 个答案:

没有答案