我知道在Stackoverflow中多次询问过这个问题,但我实际上并不知道如何让它工作。
所以我在其他线程中发现我可以每5分钟执行一次Ajax调用以获得例子,并在每次调用时更新数据库中的if (ViewState["datAdminDocument"] == null)// if data table id null
{
datAdminDocument = new DataTable(); //add new column in data table
datAdminDocument.Columns.Add("FileBytes", typeof(System.Byte[])); //column for file byte array System.Byte[] is use fro byte array
ViewState["datAdminDocument"] = datAdminDocument;// viewstate use for prevent the data in datatable
}
else
{
datAdminDocument = ViewState["datAdminDocument"] as DataTable; // if data table is not null then else condition execute
}
DataRow drow = null;// drow is a null object for datarow
drow = datAdminDocument.NewRow();
drow[0] = AdminFileUpload.FileBytes; //file byte array insert in data table row
datAdminDocument.Rows.Add(drow); //add row in data table
datAdminDocument.AcceptChanges(); //change in data table
GridAdminUploadDocument.DataSource = datAdminDocument;//data table bind with gird
GridAdminUploadDocument.DataBind();
ViewState["datAdminDocument"] = datAdminDocument; // after that now i want retrive byte array form data table by using for loop
for (i = 0; i < datAdminDocument.Rows.Count; i++) //for loop use for retrive byte array from data table column.
{
File.WriteAllBytes(Server.MapPath("~/AdminDocument/a.jpg"),
Encoding.Unicode.GetBytes(datAdminDocument.Rows[i][0].ToString().Trim());
} // a.jpg is a new file name
(或其他)列。
但是如何执行这个Ajax调用。我知道如何在每次访问页面时从JS执行它,但这会导致大量请求。我想安排通话。如果可能的话,一段代码将是一个很好的帮助。
我还想过在控制器中创建一个动作,并且每5分钟调用一次这个动作。但我又不知道如何安排行动电话。
提前谢谢。
答案 0 :(得分:1)
var _lasttimeseen = setInterval(lasttimeseen, 30000);
function lasttimeseen() {
$.ajax({
url: "{{ path('route_to_update_lasttimeseen') }}",
type: "POST",
data: {},
success: function (msg) {}
...
})
}
这样的事情对你有帮助吗?