VB.Net:如何解决加载巨大记录时的请求超时问题?

VB.Net:如何解决加载巨大记录时的请求超时问题?,vb.net,performance,request,timeout,Vb.net,Performance,Request,Timeout,我对这种方法还不熟悉。当我加载记录并将其放入数据表时,收到请求超时错误。我使用SP进行查询,当我测试它时,它运行不到一秒钟。但在我的页面中无法执行此操作 items.vbhtml <div class="pnl_viewlist"> <div class="row" style="padding-bottom:10px;"> <div class="col-lg-12"> <div class="panel

我对这种方法还不熟悉。当我加载记录并将其放入数据表时,收到请求超时错误。我使用SP进行查询,当我测试它时,它运行不到一秒钟。但在我的页面中无法执行此操作

items.vbhtml

<div class="pnl_viewlist">
    <div class="row" style="padding-bottom:10px;">
        <div class="col-lg-12">
            <div class="panel">
                <div class="panel-heading">
                    <h5>Product List</h5>
                </div>
                <div class="panel-body">
                    <div class="table-responsive">
                        <table id="tbl_items" class="table table-responsive">
                            <thead>
                                <tr class="bg-light">
                                    <th class="text-center">Image</th>
                                    <th>Item</th>
                                    <th>Description</th>
                                    <th>Price</th>
                                    <th>Unit</th>
                                </tr>
                            </thead>
                            <tbody></tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

产品清单
形象
项目
描述
价格
单位
项目控制员

Function items_view() As ActionResult
    Return View()
End Function

<HttpPost>
<ValidateAntiForgeryToken>
Function product_catalog(obj As masters.Items) As JsonResult 'function name
    Dim product_catalog_in = ws_masters.items_in_up(obj, Session("company_no"), Session("user_id"), Session("user_group_title")) 'from asmx
    Return Json(product_catalog_in, JsonRequestBehavior.AllowGet)
End Function

<HttpGet>
Function item_code_view_sel() As JsonResult
    Dim item_code As New List(Of masters.items)(ws_masters.item_code_sel_view())
    Return Json(item_code, JsonRequestBehavior.AllowGet)
End Function

<HttpGet>
Function item_list(item_id As Int32) As JsonResult
    Dim items As New List(Of masters.items)(ws_masters.item_view_sel(item_id, Session("company_no")))
    Return Json(items, JsonRequestBehavior.AllowGet)
End Function

<HttpPost>
Public Function upload_item_image(item_id As Int32) As JsonResult
    Dim _url_file_name As String = ""
    Try
        If Request.Files.Count > 0 Then
            For Each uploaded_file As String In Request.Files
                Dim fileContent = Request.Files(uploaded_file)
                If fileContent IsNot Nothing AndAlso fileContent.ContentLength > 0 Then
                    Dim fileName = Path.GetFileName(uploaded_file)
                    _url_file_name = "/Images/users/" + fileName
                    fileContent.SaveAs(Path.Combine(Server.MapPath("~/Images/users"), fileName))
                    ws_masters.update_item_image(_url_file_name, item_id)
                End If
            Next
        Else
            Return Json("No Selected File", JsonRequestBehavior.AllowGet)
        End If
    Catch generatedExceptionName As Exception
        Return Json("Upload failed", JsonRequestBehavior.AllowGet)
    End Try
    Return Json(_url_file_name, JsonRequestBehavior.AllowGet)
End Function
Function items\u view()作为ActionResult
返回视图()
端函数
功能产品目录(obj作为masters.Items)作为JsonResult的功能名称
Dim product_catalog_in=ws_masters.asmx提供的项目(obj、会话(“公司号”)、会话(“用户id”)、会话(“用户组标题”)”
返回Json(产品目录中的JsonRequestBehavior.AllowGet)
端函数
函数项\代码\视图\选择()作为JsonResult
将项目\代码设置为新列表(主项.项目)(ws\主项.项目\代码\选择\视图())
返回Json(item_代码,JsonRequestBehavior.AllowGet)
端函数
函数项列表(项id为Int32)作为JsonResult
作为新列表的Dim项目(主项目)(ws_masters.item_view_sel(项目id,会话(“公司编号”))
返回Json(items,JsonRequestBehavior.AllowGet)
端函数
公共函数将项目图像(项目id为Int32)上传为JsonResult
Dim\u url\u文件\u名称为String=“”
尝试
如果Request.Files.Count>0,则
对于每个上传的_文件,在Request.Files中作为字符串
Dim fileContent=Request.Files(上传的文件)
如果fileContent不是Nothing,并且fileContent.ContentLength>0,则
Dim fileName=Path.GetFileName(上传的文件)
_url_file_name=“/Images/users/”+文件名
fileContent.SaveAs(Path.Combine(Server.MapPath(“~/Images/users”),文件名))
ws\u masters.update\u item\u image(\u url\u file\u name,item\u id)
如果结束
下一个
其他的
返回Json(“没有选择的文件”,JsonRequestBehavior.AllowGet)
如果结束
捕获generatedExceptionName作为异常
返回Json(“上传失败”,JsonRequestBehavior.AllowGet)
结束尝试
返回Json(_url_file_name,JsonRequestBehavior.AllowGet)
端函数
items.js

function load_item_list() {
    $.ajax({
        url: "/master/item_list?item_id=0",
        type: "GET",
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        success: function (result) {
            var vdatatable = $("#tbl_items").DataTable();
            vdatatable.clear();
            vdatatable.draw();
            $.each(result, function (key, item) {
                vdatatable.row.add(["<img src='"+ item.thumb_path + "' class='img-thumbnail img-responsive thumb' style='width:50px;' />", "<a href='#' onClick='item_details(\"" + item.item_id + "\");'>" + item.item_code + "</a>", item.item_desc, item.price, item.uom_code]).draw();
            });
        },
        error: function (errormessage) {
            console.log(errormessage.responseText);
        }
    });
}
函数加载项列表(){
$.ajax({
url:“/master/item\u list?item\u id=0”,
键入:“获取”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(结果){
var vdatatable=$(“#待定项”).DataTable();
vdatatable.clear();
vdatatable.draw();
$。每个(结果、功能(键、项){
vdatatable.row.add([“”,“”,item.item_desc,item.price,item.uom_code]).draw();
});
},
错误:函数(错误消息){
console.log(errormessage.responseText);
}
});
}

请详细回答这个问题。这是一种新的方法。非常感谢

这就是您需要集中调试工作的地方:
ws\u masters.item\u view\u sel(item\u id,Session(“company\u no”)
。我只能猜测,这可能是一个坏的连接字符串。我使用的查询字符串需要item\u id和company\u no,然后执行。当我只拿到前100名的时候,加载速度很快。只有100?你可以做一些优化,但也可以考虑寻呼,因为在用户面前推几百行可能会适得其反。我的意思是,当我得到前100名时,它的加载速度很快,但所有记录结果都要求超时。我有3k条记录..我使用的数据表有分页。。