• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ajax ist sehr, sehr langsam

Hey,

ich benutze ajax für die optik, da ich es schöner finde wenn sich alles auf einer seite abspielt.
Ich programmiere gerade eine Kundenverwaltung (das erste mal im browser sonst immer mit c#)

Folgendes:
Ich habe die PHP Datei newkunde.php, dort ist eine tabelle mit alles kunden und daneben eine maske in dieser man einen neuen kunden anlegen kann.

Wenn man auf den hinzufügen button clickt, senden die newkunden.php einen ajax an die functions.php, diese wiederum an die class.php usw... ich zeigs euch mal!

das problem ist, dass das laden !!! 3,5 !! sekunden braucht... einfach VIEL zu lange

PHP:
<?php
    include("autoload.php");
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Bootstrap 101 Template</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta charset="UTF-8">
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <script src="https://code.jquery.com/jquery.js"></script>
        <link rel="stylesheet" media="screen" href="css/style.css">
        <link rel="stylesheet" type="text/css" href="css/font-awesome.min.css">
        <script src="http://cherne.net/brian/resources/jquery.hoverIntent.minified.js"></script>
    </head>
    <body>
       
                    <div class="row">
                        <div class="col-md-3">
                            <input type="text" name="txt_sortiernummer" id="txt_sortiernummer" class="form-control" placeholder="SortNr">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            <input type="text" name="txt_vorname" id="txt_vorname" class="form-control" placeholder="Vorname...">
                        </div>
                        <div class="col-md-6">
                            <input type="text" name="txt_nachname" id="txt_nachname" class="form-control" placeholder="Nachname...">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-9">
                            <input type="text" name="txt_strasse" id="txt_strasse" class="form-control" placeholder="Strasse...">
                        </div>
                        <div class="col-md-3">
                            <input type="text" name="txt_hausnummer" id="txt_hausnummer" class="form-control" placeholder="Nr...">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <input type="text" name="txt_telefon" id="txt_telefon" class="form-control" placeholder="Telefon...">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <textarea class="form-control" placeholder="Info..." name="txt_info" id="txt_info"></textarea>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12 btn-container">
                            <a href="#" class="btn btn-info" onclick="trash()" id="papierkorb"><i class="fa fa-trash-o"></i> Felder leeren</a>
                            <a href="#" class="pull-right btn btn-info" onclick="add()" id="hinzufügen"><i class="fa fa-plus-square"></i> Hinzufügen</a>
                        </div>       
                    </div>
                </div>
                <div class="col-md-6">
                    <h3>Kundenliste</h3>
                        <table class="table table-hover">
                            <caption>...</caption>
                            <thead>
                                <tr>
                                    <th>ID</th>
                                    <th>Vorname</th>
                                    <th>Nachname</th>
                                    <th>Adresse</th>
                                    <th>Aktionen</th>
                                </tr>
                            </thead>
                            <tbody>
                                <img src="img/waiter.gif" id="waiter">
                                <?php $test = new kunde; echo $test->GetAll();?>
                            </tbody>
                        </table>

                </div>
            </div>
        <script src="js/bootstrap.min.js"></script>
        <script type="text/javascript">
           
            function DelById($ID)
            {
                $.ajax({
                    type:"POST",
                    url:"functions.php",
                    data:"Parameter=del&ID="+$ID,
                    success:function(html) {
                        $('tbody').html(html);
                        $("#waiter").fadeOut();
                    }, beforeSend: function() {
                        $("#waiter").fadeIn();
                    }
                });
            }
           
            function add()
            {
                Sortiernummer = $("#txt_sortiernummer").val();
                Vorname = $("#txt_vorname").val();
                Nachname = $("#txt_nachname").val();
                Strasse = $("#txt_strasse").val();
                Hausnummer = $("#txt_hausnummer").val();
                Telefon = $("#txt_telefon").val();
                Info = $("#txt_info").val();
               
                $.ajax({
                    type:"POST",
                    url:"functions.php",
                    data:"Parameter=add&Vorname="+Vorname+"&Nachname="+Nachname+"&Strasse="+Strasse+"&Hausnummer="+Hausnummer+"&Telefon="+Telefon+"&Info="+Info+"&Sortiernummer="+Sortiernummer,
                    success:function(html) {
                        $('tbody').html(html);
                        trash();
                    }, beforeSend: function() {
                   
                    }
                });
            }
           
            function trash()
            {
                $(".form-control").val("");
            }
               
            $(document).ready(function() {
               
               
               
               
                $("#kundenbtn").click(function() {
                    $("#kundenmenu").slideToggle(250);
                });
               
                $("#tourbtn").click(function() {
                    $("#tourmenu").slideToggle(250);
                });
            });
        </script>
    </body>
</html>

functions.php
PHP:
<?php
    include("autoload.php");
   
    if (isset($_POST['Parameter']))
    {
        switch($_POST['Parameter'])
        {
            case("del"):
            $KDR = new Kunde;
            $KDR->DelByID($_POST['ID']);
            echo $KDR->GetAll();
            break;
            case("add"):
            $KDR = new Kunde;
            $KDR->add($_POST['Vorname'], $_POST['Nachname'], $_POST['Strasse'], $_POST['Hausnummer'], $_POST['Telefon'], $_POST['Sortiernummer'], $_POST['Info']);
            echo $KDR->GetAll();
            break;
        }
    }

   
?>

class.php
Code:
<?php

class Kunde
{
    private $ID                    = "";
    private $Vorname            = "";
    private $Nachname            = "";
    private $Strasse            = "";
    private $Hausnummer        = "";
    private $Telefon            = "";
    private $Sortiernummer        = "";
    private $Info                = "";
   
    public function add ($Vorname, $Nachname, $Strasse, $Hausnummer, $Telefon, $Sortiernummer, $Info)
    {
        $conn = new mysqli("localhost", "root", "", "zusteller");
        $conn->set_charset("utf8");
        $query = "INSERT INTO kunden (Aktiv, Vorname, Nachname, Strasse, Hausnummer, Telefon, Sortiernummer, Info) VALUES ('1', '" . $Vorname . "', '" . $Nachname . "', '" . $Strasse . "', '" . $Hausnummer . "', '" . $Telefon . "', '" . $Sortiernummer . "', '" . $Info . "')";
        $result = $conn->query($query);
        return $conn->insert_id;
    }
   
    public function DelByID ($ID)
    {
        $conn = new mysqli("localhost", "root", "", "zusteller");
        $query = "DELETE FROM kunden WHERE ID = '" . $ID . "'";
        $result = $conn->query($query);
        return $result;
    }
   
    public function GetAll ()
    {
        $conn = new mysqli("localhost", "root", "", "zusteller");
        $conn->set_charset("utf8");
        $query = "SELECT * FROM kunden WHERE Aktiv = '1'";
        $result = $conn->query($query);
        $str = "";
        while ($row = $result->fetch_array())
        {
            $str = $str . "\n<tr>";
            $str = $str . "\n<td>";
            $str = $str . $row['ID'];
            $str = $str . "</td>";
            $str = $str . "\n<td>";
            $str = $str . $row['Vorname'];
            $str = $str . "</td>";
            $str = $str . "\n<td>";
            $str = $str . $row['Nachname'];
            $str = $str . "</td>";
            $str = $str . "\n<td>";
            $str = $str . $row['Strasse'] . $row['Hausnummer'];
            $str = $str . "</td>";
            $str = $str . "\n<td>";
            $str = $str . "<a href='#' onclick='DelById(" . $row['ID'] . ")' class='delbtn'><i class='fa fa-times'></i></a>";
            $str = $str . "</td>";
            $str = $str . "\n</tr>\n";
           
        }
        return $str;
    }
}
?>
 
Werbung:
Hallo,

ich seh jetzt nichts auf die schnelle und habe auch erlich nicht die lust aber setze doch einfach ein paar marker und lass die ausgeben. Am besten microtime und dann siehst ja was die 3.5 sek braucht. vielleicht ist ja die Datenbank fehlerhaft.

Cheffchen
 
Werbung:
Zurück
Oben