Hmm, om man gör en tvingad omladdning av sidan CTRL+SHIFT+R uppstår inte problemet (den tömmer cachen samtidigt)...vad händer om du skickar med ett slumpat värde i en querystring eller liknande, så att den inte cachar.
Här har jag ett "litet" problem, i firefox2 så sparas tydligen en egen viewstate som används när man gör en reload på sidan.
På denna sidan kan du se effekten:
http://dev.webreport.se/AjaxToolkit/ajaxtoolkit.aspx
If FF2, tryck på den första knappen, den uppdaterar den andra knappen (och tvärt om). När du har klickat på båda knapparna, gör en reload (antingen via CTRL+R eller via menyn), tryck på en knapp igen och båda knapparna uppdateras (vilket koden inte skall göra).
Vad tror ni? Är det en effekt av hur FF2 hanterar sparade formvärden, eller är det en bug i ajax?
Notera att det fungerar i både IE6 och Opera9.
Här är koden:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajaxtoolkit.aspx.cs" Inherits="test_ajaxtoolkit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager runat="server" ID="SM" />
<asp:UpdatePanel runat="server" ID="UP1">
<ContentTemplate>
<asp:Button runat="server" ID="btn1" Text="Click me" OnClick="btn1_click" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UP2">
<ContentTemplate>
<asp:Button runat="server" ID="btn2" Text="Click him" OnClick="btn2_click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class test_ajaxtoolkit:System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e )
{
}
protected void btn1_click( object sender, EventArgs e )
{
btn2.Text = "1: " + DateTime.Now.ToString();
}
protected void btn2_click( object sender, EventArgs e )
{
btn1.Text = "2: " + DateTime.Now.ToString();
}
}
