Verzögerung beim Laden eines Skripts mit SoapClient

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Verzögerung beim Laden eines Skripts mit SoapClient

    Hallo, ich habe ein Problem beim Aufrufen eines Skripts, welches auf einen Web-Service zugreift. Und zwar gibt es eine Verzögerung von rund 4-5 Sekunden bis die Seite fertiggeladen wurde. Hier mal der Code dafür:
    PHP Code:
    <?php
        $start
    =microtime(true);
        
    $client = new SoapClient("http://www.foreclosuredatabank.com/soapserver.php?wsdl");
        print(
    $client->latestProperties('33149'));
        
    $stop=microtime(true)-$start;
        print 
    "<br/>".$stop;
    ?>
    Die Zeit, die gemessen wird, ist so 0,9 Sekunden, es dauert auch nur so lange, bis die Daten angezeigt werden, aber die Seite läd noch weiter und ich würde gerne wissen wieso.
    Das scheint kein Problem darzustellen, dass die Seite noch läd, aber es wird zum Problem, denn in meinem richtigen Programm verwende ich AJAX um die vom Webservice geholten Daten anzuzeigen. Und da wartet der Browser diese Zeit die er läd, bis er das Ergebnis anzeigt. Dazu auch noch einmal den Code, ich verwende das Ajax-Framework XAJAX:
    PHP Code:
    function learnConcept()
    {
        
    $start=microtime(true);
        
    $client = new SoapClient("http://www.foreclosuredatabank.com/soapserver.php?wsdl");
        
    $id=$client->latestProperties('33149');
        
    $objResponse=new xajaxResponse();
        
    $objResponse->append("articlecontent","innerHTML",microtime(true)-$start);
        return 
    $objResponse;

    Die Funktion wird aufgerufen und bearbeitet und das Ergebnis an den Browser geschickt, die Zeit, die ich da anzeige sind wieder 0,9 Sekunden, aber im Div erscheint es erst nach 5 Sekunden, weil der Browser oder irgendwas die Ausgabe blockiert.

    Ich bin ziemlich verzweifelt, weil mir da bisher keiner helfen konnte, ich hoffe einer von euch weiss etwas dazu.

  • #2
    Von welchem DIV ist die rede?? Es wäre auch ein Link zum Testscript interessant. Nach der Ausgabe von $Stop sollte das Script eigentlich beendet sein. (wenn das dein kompletter Code ist)

    Comment


    • #3
      Naja, der obere Code ist komplett, wenn man das ausführt, lädt die Seite noch weiter nach der Anzeige. Den kompletten Ajax-Code kann ich auch posten, wenn das helfen sollte:

      PHP Code:
      indextest.php:

      <?php
      ini_set
      ('error_reporting',E_ALL);

      require(
      "xajaxtest.php"); 
        
      ?>
      <!DOCTYPE html 
           PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
        <head>
          <title>DBpedia Navigator</title>
          <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
          <link rel="stylesheet" href="default.css"/>
          <?php $xajax->printJavascript('xajax/'); ?>    
        </head>
        <body>

      <!--  <h1>DBpedia Navigator</h1> -->
      <img src="images/dbpedia_navigator.png" alt="DBpedia Navigator" style="padding:5px" />
      <div id="layer" style="display:none">
          <div id="layerContent" style="display:none"></div>
      </div>

      <div id="wrapper">
          <div id="leftSidebar">

              <div class="box" id="concept">
                <div class="boxtitlewithbutton"><table border="0" class="titletable"><tr><td class="left">Learned Concept</td><td class="right"><input type="button" value="Learn" class="button" onclick="xajax_learnConcept();return false;" /></td></tr></table></div>
                <div class="boxcontent">
                <div id="conceptcontent" style="display:none"></div>
                <div id="loadingConcept" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div>
                </div> <!-- boxcontent -->
              </div> <!-- box -->
              
          </div><!-- END leftSidebar -->

          <div id="content">
              <div class="box">
                <div class="boxtitle" id="ArticleTitle">Welcome</div>
                <div class="boxcontent" id="article">
                <div id="articlecontent" style="display:block">
                <br /><br />
                Verzögerung:
                </div>
                <div id="loadingArticle" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div>
                </div> <!-- boxcontent -->
              </div> <!-- box -->
          </div><!-- content -->
          
          <!--   <div id="clear"></div> -->
          
      </div><!--  wrapper -->
        </body>
      </html>
      PHP Code:
      xajaxtest.php:

      <?php 
      require_once ("xajax/xajax_core/xajax.inc.php");
      $xajax = new xajax();
      $xajax->configureMany(array('debug'=>true));
      $xajax->registerFunction('learnConcept');
      $xajax->processRequest();

      function 
      learnConcept()
      {
          
      $start=microtime(true);
          
      $client = new SoapClient("http://www.foreclosuredatabank.com/soapserver.php?wsdl");
          
      $id=$client->latestProperties('33149');
          
      $objResponse=new xajaxResponse();
          
      $objResponse->append("articlecontent","innerHTML",microtime(true)-$start);
          return 
      $objResponse;
      }
      ?>
      Das was da bei Verzögerung ausgespuckt wird, sind 0,9 Sekunden, aber es dauert tatsächlich 5 Sekunden, bis es angezeigt wird. Nicht wundern, der Code ist zusammengestückelt aus dem Originalcode, hab nur das wesentliche drinbehalten, um das Problem testen zu können.
      Das Div siehst du ja in indextest.php, das mit der id articlecontent, da wird der Inhalt reingepackt.
      Last edited by Sisko1980; 05-02-2008, 13:55.

      Comment


      • #4
        Der JS-Code ist ja erstmal nicht das Problem.

        Lass uns erstmal debuggen warum der reine PHP-Code 5 Sekunden zum laden braucht, obwohl deine Stoppuhr < 1sek sagt.

        - Also der obere Code aus dem ersten Posting ist komplett?
        - Nach etwa 1 Sekunde wird die Zeit ausgegeben und die Seite läd aber noch ca. 4 Sekunden weiter?
        - Haste das mal online zum Testen?

        Comment


        • #5
          Also ich habs grad mal in ZDE getestet:
          Property ID: 322169
          City: Key-biscayne
          State: FL
          Price: N/A
          County: Miami-dade
          Register Date: 2007-01-22
          Link: ¬ Listings details

          1.0629110336304
          Ohne Verzögerung...

          Comment


          • #6
            Ja, der obere Code ist so komplett, wenn man den als test.php auf nen Apache legt, läuft das, man muss nur das Soap Modul von PHP laden (in der php.ini). Mein Arbeitsrechner ist leider nicht von außen zugängig, müsste ich höchstens auf meinen andern Rechner packen, der aber noch kein apache installiert hat =)

            Comment


            • #7
              Naja, Hellsehen ist dann natürlich so ne Sache.

              Wäre natürlich auch mal gut das ganze auf nem Live-System o.ä. zu testen. Vielleicht ist es ja ein lokales Problem bei dir im Netzwerk...
              Last edited by TobiaZ; 05-02-2008, 14:09.

              Comment


              • #8
                Mmh, wenn er da wirklich nicht noch länger die Seite läd, muss es ja irgendwie an meinem Rechner liegen, irgendwelche Einstellungen oder so, ich werde mal weiter testen.

                Comment


                • #9
                  Ich habs auf meinem anderen Rechner alles installiert und da hab ich das Problem auch nicht, muss am lokalen Rechner liegen , naja installiere jetzt alles neu und hoffe, dass es dann funzt.

                  Comment


                  • #10
                    OffTopic:
                    Ich wäre mal für Codeumbrechen ~~
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Comment


                    • #11
                      Macht dein Browser das nicht automatisch?

                      BTW: Das Problem ist längst "gelöst"!

                      Comment


                      • #12
                        Macht dein Browser das nicht automatisch?
                        Nein, in dem PHP Code (<div class="boxtitlewithbutton"> ...) macht das kein Browser (weder Firefox noch Opera noch Safari noch IE X) - wenn du eine Erweiterung oder ein Skript / CSS dafür hast dann raus damit.
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Comment


                        • #13
                          Original geschrieben von tontechniker
                          Nein, in dem PHP Code (<div class="boxtitlewithbutton"> ...) macht das kein Browser (weder Firefox noch Opera noch Safari noch IE X) - wenn du eine Erweiterung oder ein Skript / CSS dafür hast dann raus damit.
                          Klar, da man sich ja nicht die Mühe macht, die Forensoftware anzupassen, weil das Update ja sooo kurz bevor steht, hab ich vor nem Jahr auf zwei mal die Configs vom FF angepasst. Wenn du mir sagst, wo ich die Datei wiederfinde, schick ich dir den Code...

                          Comment


                          • #14
                            Wenn du mir sagst, wo ich die Datei wiederfinde, schick ich dir den Code...
                            Code:
                            Dokumente und Einstellungen/[i]Benutzer[/i]/Anwendungsdaten/Mozilla/Firefox/Profiles/... 
                                                           ~/Library/Application Support/Firefox/Profiles/...
                            
                            .../1234567.name/[chrome/]user[chrome|content].css
                            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                            Comment


                            • #15
                              http://userstyles.org/styles/5080

                              Wems gefällt, der darf gerne Spenden.

                              Comment

                              Working...
                              X