Hooking das http / https-Protokoll im IE führt dazu, dass GET-Anforderungen sequentiell sind

Ich benutze das PassthruAPP -Methode zum Einbinden in HTTP / HTTPS-Anforderungen des IE.

Es funktioniert größtenteils gut, aber ich habe ein Problem bemerkt. Es ist immer nur ein Download-Thread aktiv, normalerweise verwendet der IE zwei Download-Threads. Ich kann sehen, dass zwei IInternetProtocol-Objekte erstellt werden, aber der IE verwendet jeweils nur eines.

Dies geschieht mit IE7, ich habe es noch nicht mit anderen Versionen versucht.

Das Problem scheint zu sein, dass der IE auf das Herunterladen von Elementen nacheinander zurückgreift, wennIInternetSession::RegisterNameSpace wird für einen seiner Standardhandler aufgerufen. Der folgende Code verursacht HTTP -Downloads werden sequenziell ausgeführt, obwohl ich ein @ registrie HTTPS Handler. Die Registrierung für 'file: //' verursacht dasselbe Problem.

CComPtr<IInternetSession> spSession;
CoInternetGetSession(0, &spSession, 0);

MetaFactory::CreateInstance(CLSID_HttpSProtocol, &m_spCFHTTPS);
spSession->RegisterNameSpace(m_spCFHTTPS, CLSID_NULL, L"https", 0, 0, 0)

Dies geschieht immer für die ersten paar Elemente auf der Seite, aber es scheint, dass nach der Ausgabe des vollständigen Dokuments erneut gleichzeitige Downloads stattfinden können. Beispielsweise kann Javascript-Code, der ausgeführt wird, nachdem die Seite geladen wurde, gleichzeitig Bilder laden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage