Frage

Ich habe ein Bild, das automatisch innerhalb eines Ajax Update erzeugt wird. Dieses Bild ist ein Diagramm, das von serverseitigen Code erzeugt wird. Suche in Google, ich erkennen, dass es ein Fehler von FF war. Hat jemand eine Lösung?

Hier ist die Quelle (es enthält auch unnötige Tags, ich habe gerade kopiert-Paste)

<div>
   <asp:UpdatePanel ID="UpdatePanelGraph" runat="server" UpdateMode="Conditional">
       <ContentTemplate>
           <asp:Panel ID="pnlGraph" runat="server" CssClass="container">
                <div id="chart">
                     <Web:ChartControl ID="chartExchange" runat="server" Width="300px" Height="200px" BorderStyle="None" GridLines="both" DefaultImageUrl="../images/noData.png" ShowTitlesOnBackground="False" BorderWidth="1px" Padding="1" HasChartLegend="False" BottomChartPadding="20" TopChartPadding="5" RightChartPadding="5" LeftChartPadding="20">
                            <Border Color="211, 224, 242"></Border>
                            <YAxisFont ForeColor="115, 138, 156" Font="Tahoma, 7pt" StringFormat="Far,Center,Character,LineLimit"></YAxisFont>
                            <XTitle ForeColor="115, 138, 156" StringFormat="Center,Near,Character,LineLimit">
                            </XTitle>
                            <XAxisFont ForeColor="115, 138, 156" StringFormat="Near,Near,Character,NoClip"></XAxisFont>
                            <Background Type="LinearGradient" Color="#C9DEFD" ForeColor="Transparent" EndPoint="500, 500">
                            </Background>
                            <ChartTitle ForeColor="51, 51, 51" Font="Verdana, 9pt, style=Bold" StringFormat="Near,Near,Character,LineLimit">
                            </ChartTitle>
                            <Charts>
                                <Web:SmoothLineChart Name="buy" Legend="Blen">
                                    <Line Color="ActiveCaption"></Line>
                                    <DataLabels>
                                        <Border Color="Transparent"></Border>
                                        <Background Color="Transparent"></Background>
                                    </DataLabels>
                                </Web:SmoothLineChart>
                                <Web:ColumnChart Name="avgChart">
                                </Web:ColumnChart>
                            </Charts>
                            <YTitle ForeColor="115, 138, 156" StringFormat="Center,Near,Word,LineLimit"></YTitle>
                    </Web:ChartControl>
                </div>                
            </asp:Panel>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
War es hilfreich?

Lösung 2

Auch ist es keine gute Lösung, das Setzen der Cachebarkeit mein Problem gelöst nocache. Ich worte auf meinem Pageload

  Response.Cache.SetCacheability(HttpCacheability.NoCache);

Es funktioniert auch durch diesen Code Einstellung

<script type="text/javascript">

      var prm = Sys.WebForms.PageRequestManager.getInstance();
      prm.add_pageLoaded(pageLoaded);
      var c = 0;
      function pageLoaded(sender, args)
      {
      var img = document.getElementById("ctl00_ctl00_MainContent_MainContent_chartExchange");
      c++;
      img.src = img.src + "?" + c;
      }

</script>

Andere Tipps

Welche Version von .NET verwenden Sie? Der 3,5 Rahmen hat eine neue Grafiksteuerung. Ich verbrachte ein paar Tage mit ihm herumspielen, und war überrascht, wie stark es ist. Und ich habe es auch in Update ohne Probleme überhaupt.

Es scheint mir, dass Sie das gleiche Problem auf FF oder IE haben sollten, unabhängig.

Ich habe auf dem Update bemerkt, dass Sie haben

UpdateMode="Conditional"

, aber Sie geben keine Trigger. was das bedeutet ist der Inhalt des Update-Panel wird durch nichts anderes als irgendwelche Tasten innerhalb des Update-Panel ausgelöst werden, die ich nicht sehen. Versuchen Sie, die Update zu immer für die Fehlersuche zu ändern und sehen, ob das Ihr Problem behebt, und klappen Sie den entsprechenden Auslöser von dort aus.

EDIT:

Können Sie steuern, wie die Grafik Name / Dateiname an den Browser erstellt und gerendert wird? Könnte das Bild durch den Browser im Cache gespeichert werden? Ich hatte Probleme mit einer Grafik Verpackung in Java / JSP mit AJAX aufruft. Ich hatte eine GUID meine AJAX-URL Query-String-Variable anhängen das Caching Problem zu beheben.

Einige graben mit FireBug mich dazu gebracht, zu entdecken, dass genau das gleiche Bild URL zurückgegeben wird, ob ich 120 dite wählen oder 30 dite oder mesataret. Sieht aus wie Ihre Charting-Steuerung wird das gleiche Bild URL zurückkehren, auch wenn die Daten hinter sie sich ändert. Klingt für mich wie ein Fehler in der Steuerung.

Sie können hier ein web.config im WebCharts Verzeichnis verwendet die Cache-Fähigkeit der Bilder von dort bedient zu setzen, zu bewirken, dass sie nie im Cache gespeichert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top