我正在开发一个asp.net网页,其中包含用户观看的视频。我试图捕获用户观看视频的统计数据。获取数字完全没问题。问题是当他们关闭浏览器时。我需要知道用户在浏览器关闭时观看的视频有多远。
的JavaScript
对于我的Javascript,我创建了一个按钮,当它被单击时,它将调用.aspx.cs文件中的服务器端函数。 JavaScript代码如下。每次用户退出网页时都会正常运行。
window.onbeforeunload = submitStat;
function submitStat() {
//Get video time
statString = getCurrentVideoTime();
//Put the video time into a textbox that the server-side function can read.
$('#videoStatsText').val(statString);
//Click the button that calls the server-side function
document.getElementById("submitVidStat").click();
}
HTML
我创建了一个调用服务器端功能的按钮,我创建了一个服务器可以读取的文本框。
<asp:Button ID="submitVidStat" Text="Submit Stat" runat="server" OnClick="submitStat_Click" />
C#服务器端功能
我在C#代码中有最后一个函数,它读取视频统计信息(来自上面的HTML文本框)并将其插入到数据库中。
protected void submitStat_Click(object sender, EventArgs e)
{
submitVidStats();
}
private void submitVidStats()
{
string stats = videoStatsText.Text;
//function that inserts the statistics into the database.
insertVidStats(stats);
}
问题
当我在本地主机上运行它时,它运行正常。我甚至可以设置断点,即使我的浏览器关闭(因为window.onbeforeunload JavaScript函数),我也能看到断点被击中。但问题是它何时投入生产。当我将它部署到在线服务器时,统计数据永远不会在我查看时输入到数据库中。我无法知道服务器端代码是否被调用,因为我无法将断点置于生产模式。请帮忙。