理解304响应 - 没有修改?

时间:2014-10-10 10:46:10

标签: javascript c# jquery asp.net signalr

我在客户端运行以下脚本,当数据库发生更改时,脚本无法更新。我使用DevTools调试了脚本,并发现我的Jquery脚本正在响应,因为" 304没有被修改"。此问题是否表明客户端内容无法更新的原因。

 <script src="../Scripts/jquery-1.6.4.js"></script>
 <script src="../Scripts/jquery-1.6.4.min.js"></script>
 <script src="../Scripts/jquery.signalR-2.1.2.min.js"></script>
 <script src='<%: ResolveClientUrl("~/signalr/hubs") %>'></script>
 <script type="text/javascript">
$(function () {
    // Declare a proxy to reference the hub.          
    var notifications = $.connection.NotificationHub;
    // Create a function that the hub can call to broadcast messages.
    notifications.client.recieveNotification = function (role, descrip) {
        // Add the message to the page.                    
        $('#spanNewMessages').text(role);
        $('#spanNewCircles').text(descrip);            
    };
    // Start the connection.
    $.connection.hub.start().done(function () {
        notifications.server.sendNotifications();
        alert("Notifications have been sent.");

    }).fail(function (e) {
        alert(e);
    });
    //$.connection.hub.start();
});
  </script>
  <h1>New Notifications</h1>
  <div>

  <br />
  <b>New   <span id="spanNewMessages"></span> = role.</b><br />
  <b>New   <span id="spanNewCircles"></span> = descrip.</b><br />   
  </div>

枢纽类:

 [HubName("NotificationHub")]
public class notificationHub : Hub
{
    string role = "";
    string descrip = "";

    [HubMethodName("sendNotifications")]
    public void SendNotifications()
    {
        using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["dummyConnectionString"].ConnectionString))
        {

            string query = "SELECT top 1 [role],[description] FROM [dbo].[User] order by uploadDate desc";
            connection.Open();
            SqlDependency.Start(GetConnectionString());

            using (SqlCommand command = new SqlCommand(query, connection))
            {

                try
                {
                    command.Notification = null;
                    DataTable dt = new DataTable();
                    SqlDependency dependency = new SqlDependency(command);
                    dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
                    if (connection.State == ConnectionState.Closed)
                        connection.Open();
                    var reader = command.ExecuteReader();
                    dt.Load(reader);
                    if (dt.Rows.Count > 0)
                    {
                        role = dt.Rows[0]["role"].ToString();
                        descrip = dt.Rows[0]["description"].ToString();

                    }

                    connection.Close();

                }

                catch (Exception ex)
                {
                    throw ex;
                }
            }  
        }

        Clients.All.RecieveNotification(role, descrip);
    }

    [HubMethodName("onStatusChanged")]
    private void dependency_OnChange(object sender, SqlNotificationEventArgs e)
    {
        if (e.Info == SqlNotificationInfo.Insert)

        {
            notificationHub nHub = new notificationHub();
           nHub.SendNotifications();

        }
    }

请指教。谢谢。

0 个答案:

没有答案