5 Stimmen

Beschleunigung einer seifenbasierten Website

Wir sind derzeit in tun einige Performance-Optimierung auf einer Website, die stark auf einem Soap-Webservice angewiesen ist. Aber ... unsere Server stehen in Belgien und der Webservice, mit dem wir uns verbinden, steht in San Francisco, also ist die Verbindung gelinde gesagt sehr weit.

Unsere Website ist PHP-basiert und verwendet die in PHP integrierte SoapClient-Klasse. Im Durchschnitt dauert ein Aufruf des Webservice 0,7 Sekunden, und wir haben etwa 3-5 Anfragen pro Seite. Alle möglichen Anfrage-/Antwort-Zwischenspeicher sind bereits implementiert, so dass wir jetzt nach anderen Möglichkeiten zur Verbesserung der Verbindungsgeschwindigkeit suchen.

Dies ist der Code, der den SoapClient instanziiert. Was ich jetzt suche, sind andere Wege/Methoden, um die Geschwindigkeit bei einzelnen Anfragen zu verbessern. Hat jemand Ideen oder Vorschläge?

private function _createClient()
{
    try {

        $wsdl = sprintf($this->config->wsUrl.'?wsdl', $this->wsdl);
        $client = new SoapClient($wsdl, array(
            'soap_version'       => SOAP_1_1,
            'encoding'           => 'utf-8',
            'connection_timeout' => 5,
            'cache_wsdl'         => 1,
            'trace'              => 1,
            'features'           => SOAP_SINGLE_ELEMENT_ARRAYS
        ));

        $header_tags = array('username' => new SOAPVar($this->config->wsUsername, XSD_STRING, null, null, null, $this->ns),
                             'password' => new SOAPVar(md5($this->config->wsPassword), XSD_STRING, null, null, null, $this->ns));
        $header_body = new SOAPVar($header_tags, SOAP_ENC_OBJECT);
        $header = new SOAPHeader($this->ns, 'AuthHeaderElement', $header_body);

        $client->__setSoapHeaders($header);

    } catch (SoapFault $e){
        controller('Error')->error($id.': Webservice connection error '.$e->getCode());
        exit;
    }

    $this->client = $client;
    return $this->client;
}

-1voto

Bingy Punkte 633

Jede Chance, eine AJAX-Schnittstelle zu verwenden wenn die Anfragen im Hintergrund geschehen können, werden Sie nicht scheinen, auf die Antwort warten zu müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X