2016-04-17 4 views
1

Kürzlich habe ich festgestellt, dass meine Anwendung viele weitere Anforderungen generiert, die ich erwartet habe. Das Debugging ergab, dass in einigen Fällen ein Seitenaufruf 2-5 separate Anfragen generiert (sowohl die Owin- als auch die Ninject-Abhängigkeiten werden neu initialisiert).ASP MVC 5 - Warum Slash "/" im IMG-Tag neue Anforderungen auslöst

Nach einer Weile fand ich heraus, dass diese zusätzlichen Anfragen in meinem Rasierapparat Ansicht erstellt werden, wenn wie einen Bild-Tag zu erzeugen:

<img src="/" alt=""> 

Diese Linie keine Probleme verursacht (auch wenn das Bild nicht existiert):

Natürlich möchte ich keine ungültigen Bilder erzeugen und habe diesen Teil repariert, aber ich frage mich immer noch, was dahinter steckt.

Was ist der Zweck dieses Verhaltens?

Antwort

2

Wenn Sie src des Image-Tags auf "/" setzen, lädt der Browser die gesamte Website erneut vom Stammverzeichnis, bis er erkennt, dass die Anfrage ein HTML-Dokument und kein Bild ist. Da es von der Wurzel geladen wird, wird es als eine neue Anfrage betrachtet, daher initialisieren OWIN und Ninject alles neu, da sie pro Anfrage und nicht pro Anwendungslebensdauer sind.

Das Bild-Tag im Browser hat nicht die Fähigkeit zu erkennen, was die URL in der Quelle ist, bis es es herunterlädt, deshalb muss es die gesamte Seite herunterladen, wenn Sie die Quelle auf "/" einstellen die Wurzel der Website.