在这里。小弟我默默的计算了一下用一般处理程序和MVC配合EF,到底哪个快,事实问题是我感觉都差不多,因为用的是EF,所以要提高访问速率,我觉得还是要从数据访问做起:
一般处理程序代码:
1 private DataModelContainer db = new DataModelContainer(); 2 3 public void ProcessRequest(HttpContext context) 4 { 5 context.Response.ContentType = "text/plain"; 6 string type=context.Request["Type"]; 7 string json = String.Empty; 8 JavaScriptSerializer js = new JavaScriptSerializer(); 9 if (context.Request["type"] == null || context.Request["type"] == "" || context.Request["type"] == "undefined") 10 { 11 context.Response.Write("0"); 12 } 13 if (context.Request["Type"] == "list") 14 { 15 try 16 { 17 var list = db.CollegeInfo.ToList(); 18 19 var data = new { Row = list, Total =list.Count}; 20 json = new JavaScriptSerializer().Serialize(data); 21 context.Response.Write(json); 22 } 23 catch 24 { 25 context.Response.Write("0"); 26 } 27 } 28 }
db就是EF了。
静态页面(jQuery引用):
<script type="text/javascript"> var timeParam = Math.round(new Date().getTime() / 1000); $(function () { $.getJSON("../Hander/MenuList.ashx?time=" + timeParam, { type: 'list' }, function (result) { if (result.Total > 0) { for (var i = 0; i < result.Total; i++) { var Name = result.Row[i].Name; var Remark1 = result.Row[i].Remark1; var Remark2 = result.Row[i].Remark2; $("#ComInfoList").append("<table><tr><td>Name</td><td>Remark1</td><td>Remark2</td></tr><tr><td>" + Name + "</td><td>" + Remark1 + "</td><td>" + Remark2 + "</td></tr></table>"); } } }); }); </script>
<div id="ComInfoList"> </div>
用MVC(控制器):
1 private DataModelContainer db = new DataModelContainer(); 2 public ActionResult Index() 3 { 4 return View(db.CollegeInfo.ToList()); 5 }
视图(公司现在用的XP系统,所以小弟只能默默的继续用aspx了):
1 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<ProDatas.CollegeInfo>>" %> 2 3 <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 4 Index 5 </asp:Content> 6 7 <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 8 9 <h2>学院列表</h2> 10 11 <table> 12 <tr> 13 14 <th> 15 编号 16 </th> 17 <th> 18 名称 19 </th> 20 <th> 21 负责人 22 </th> 23 <th> 24 备注1 25 </th> 26 <th> 27 备注2 28 </th> 29 <th>请选择操作</th> 30 </tr> 31 32 <% foreach (var item in Model) { %> 33 34 <tr> 35 36 <td> 37 <%: item.ID %> 38 </td> 39 <td> 40 <%: item.Name %> 41 </td> 42 <td> 43 <%: item.Person %> 44 </td> 45 <td> 46 <%: item.Remark1 %> 47 </td> 48 <td> 49 <%: item.Remark2 %> 50 </td> 51 <td> 52 <%: Html.ActionLink("修改", "Edit", new { id=item.ID }) %> | 53 <%: Html.ActionLink("详情", "Details", new { id=item.ID })%> | 54 <%: Html.ActionLink("删除", "Delete", new { id=item.ID })%> 55 </td> 56 </tr> 57 58 <% } %> 59 60 </table> 61 62 <p> 63 <%: Html.ActionLink("添加学院信息", "Create")%> 64 </p> 65 66 </asp:Content>
访问这两个页面的时候没有什么区别,不知道大神们有没有什么想法呢?
感觉EF做一般的网站没有任何问题,开发速度还快,再用个SQL数据库,那基本上只需要一些样式和排版就可以搞定了吧。