Javascript 打开浏览器后面的窗口

Javascript 打开浏览器后面的窗口,javascript,vb.net,Javascript,Vb.net,我有一个网站,当一个人去的时候,它会检查数据库上的时间戳。如果时间戳超过4小时,则会打开一个弹出窗口,运行更新数据库的数据库导入/更新子窗口。然后就把自己关起来了 这样做的理由是,它允许浏览者继续浏览他们的业务,而另一个窗口负责更新 此时,此弹出窗口显示为焦点。 有没有办法在当前浏览器窗口后面加载弹出窗口,以避免干扰用户导航 这是主窗口的页面加载子窗口 Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs

我有一个网站,当一个人去的时候,它会检查数据库上的时间戳。如果时间戳超过4小时,则会打开一个弹出窗口,运行更新数据库的数据库导入/更新子窗口。然后就把自己关起来了

这样做的理由是,它允许浏览者继续浏览他们的业务,而另一个窗口负责更新

此时,此弹出窗口显示为焦点。 有没有办法在当前浏览器窗口后面加载弹出窗口,以避免干扰用户导航

这是主窗口的
页面加载
子窗口

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim connStr As String = ConfigurationManager.ConnectionStrings("SNA_TRT").ConnectionString
        Dim sqlConn As SqlConnection
        sqlConn = New SqlConnection(connStr)

        sqlConn.Open()

        Dim strSQL As String = "SELECT TOP 1 [ID], [LASTREFRESH], [BYWHO] FROM [TRT_db_timer] ORDER BY [ID] Desc "
        Dim cmd As New SqlCommand(strSQL, sqlConn)
        Dim dr As SqlDataReader = cmd.ExecuteReader()

        Dim lastupdate As DateTime
        Dim currenttime As DateTime = Now()

        While dr.Read()
            lastupdate = Convert.ToDateTime(dr(ClearNullDs("LASTREFRESH")))
        End While
        dr.Close()
        sqlConn.Close()

        Dim ts As TimeSpan = currenttime.Subtract(lastupdate)
        Dim dbspan As String = ts.TotalMinutes.ToString()

        Dim dsinceup As Integer = ts.Days.ToString + 1

        'MsgBox(lastupdate)
        'MsgBox(currenttime)
        'MsgBox(dbspan)

        If dbspan > 240 Then
            bodytag.Attributes.Add("onload", "window.open('/trt/admin/importnotice.aspx?DAYS=" & dsinceup & "',null,'height=150, width=350,status=yes, resizable=no, scrollbars=no, toolbar=no,location=no,menubar=no ');")
        End If
    End If
End Sub

如果希望在用户到达站点时进行更新,请使用AJAX或隐藏的iframe。如果您希望无论用户是否访问站点,都每X小时更新一次,请使用CRON作业。弹出一个窗口这样做会加重用户的负担。

如果您希望在用户到达站点时进行更新,请使用AJAX或隐藏的iframe。如果您希望无论用户是否访问站点,都每X小时更新一次,请使用CRON作业。弹出一个窗口来做这件事会激怒用户。

肯定有更好的方法来做这件事(比如ajax)

但要回答你的问题:

function loadpopunder(){
    var popunder=window.open(/* popup window parameters */);
    popunder.blur();
    window.focus(); // focuses the main window.
}

当然有更好的方法(比如ajax)

但要回答你的问题:

function loadpopunder(){
    var popunder=window.open(/* popup window parameters */);
    popunder.blur();
    window.focus(); // focuses the main window.
}

我考虑过一个隐藏的框架,但是如果更新启动,用户导航到站点上的另一个页面,并且更新仍在进行中,那么这个过程不会结束吗?听起来你需要在服务器上使用一个异步过程。通过这种方式,可以进行调用并几乎立即返回,但无论用户是否离开,作业都将继续运行。弹出窗口也有可能被弹出窗口拦截器拦截。我曾考虑过一个隐藏的框架,但如果更新启动,用户导航到站点上的另一个页面,更新仍在进行中,这不就结束了过程吗?听起来你需要在服务器上进行一个异步过程。通过这种方式,可以进行调用并几乎立即返回,但无论用户是否离开,作业都将继续运行。弹出窗口也有可能被弹出窗口拦截器卡住。我知道这可能不是最好的方法,但是真的!我能够在页面和添加的bodytag.Attributes.Add(“onload”、“loadpopunder”(&dsinceup&”)后的代码中加入这一点。我很想知道你的答案,但遗憾的是,我的排名还不够高。嗯,我知道这可能不是最好的方法,但是thnks!我能够在页面和添加的bodytag.Attributes.Add(“onload”、“loadpopunder”(&dsinceup&”)后面的代码中包含这一点。我会对你的答案进行修改,但遗憾的是,我的排名还不够高。