begin process at 2012 05 29 16:07:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Classes

 > 

POO javascript


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

POO javascript

mardi 10 octobre 2006 à 09:46:18 | POO javascript

malalam

Administrateur CodeS-SourceS
Hello tlm,

bon, je viens de faire un code utilisant de la POO javascript. Comme je ne suis pas un pro en la matière, je fais appel aux gourous JS pour critiquer un peu ma classe, et me donner des conseils pour améliorer qualitativement le code.
Le code complet se trouve ici :
http://www.phpcs.com/codes/PHP5-NOTIMEOUT-PACKAGE_39866.aspx
Ca peut servir pour la compréhension globale (c'est du requêtage xmlhttp, donc il y a un côté serveur).
Au passage, il y a aussi un petit soucis non réglé, mais je ne sais pas si c'est côté js ou côté PHP. Les données que je renvoie (traitées par PHP donc) le sont avec un header indiquant qu'il s'agit de html, avec un encodage en iso-8859-1. Néanmoins, si je renvoies du HTML, les balises ne sont pas interprétées.
Derniere question, histoire de : dans le cadre, donc, d'un encodage en iso-8859-1, la propriété de chaîne length compte-t-elle les caractères invisibles du type \n ? Parce que j'ai une différence notable, si je compte les octets d'un fichier (ou d'une chaîne) comportant des caractères invisibles via PHP, et via javascript.

Le code js en lui-même, je le copie ici, même s'il est un peu long :

/**
@author : Johan Barbier <johan.barbier@gmail.com>
@Version : 2006/10/09
*/
function noTimeOut () {
    if (window.XMLHttpRequest) {
        var oXmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        var oXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    var START = LIMIT = STEP = FILE = QUERY = TARGET = SCRIPT = MSG = '';

    function getDefault (iStart) {
        var j = iStart + STEP;
        oXmlhttp.open('POST', SCRIPT);
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loading';
                }
            }
            if (oXmlhttp.readyState==2) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loaded';
                }
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'OK';
                }
                parent.document.getElementById (TARGET).firstChild.appendData (oXmlhttp.responseText);
                if (j < LIMIT) {
                        getDefault (j);
                }
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'sType=DEFAULT&iStart='+iStart+'&iStep='+STEP;
        oXmlhttp.send (data);
    }
   
    function getDB (iStart) {
        var j = iStart + STEP;
        oXmlhttp.open('POST', SCRIPT);
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loading';
                }
            }
            if (oXmlhttp.readyState==2) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loaded';
                }
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'OK';
                }
                parent.document.getElementById (TARGET).firstChild.appendData (oXmlhttp.responseText);
                if (j < LIMIT) {
                        getDB (j);
                }
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'sType=DB&iStart='+iStart+'&iStep='+STEP+'&sQuery='+QUERY;
        oXmlhttp.send (data);
    }

    function getFile (iStart) {
        var j = iStart + STEP;
        oXmlhttp.open('POST', SCRIPT);
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loading';
                }
            }
            if (oXmlhttp.readyState==2) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loaded';
                }
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'OK';
                }
                parent.document.getElementById (TARGET).firstChild.appendData (oXmlhttp.responseText);
                if (j < LIMIT) {
                        getFile (j);
                }
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'sType=FILE_LINE&iStart='+iStart+'&iStep='+STEP+'&sFile='+FILE;
        oXmlhttp.send (data);
    }

    function getFilePat (iStart) {
        var j = iStart;
        oXmlhttp.open('POST', SCRIPT);
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loading';
                }
            }
            if (oXmlhttp.readyState==2) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'Loaded';
                }
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                if (MSG != '') {
                    parent.document.getElementById (MSG).firstChild.data = 'OK';
                }
                parent.document.getElementById (TARGET).firstChild.appendData (oXmlhttp.responseText);
                j += oXmlhttp.responseText.length;
                if (j < LIMIT) {
                        getFilePat (j);
                }
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'sType=FILE_PATTERN&iStart='+iStart+'&iStep='+STEP+'&sFile='+FILE;
        oXmlhttp.send (data);
    }

    this.initialize = function (sType, mValue) {
        switch (sType) {
            case 'START' :
                START = mValue;
                return true;
                break;
            case 'LIMIT' :
                LIMIT = mValue;
                return true;
                break;
            case 'STEP' :
                STEP = mValue;
                return true;
                break;
            case 'FILE' :
                FILE = mValue;
                return true;
                break;
            case 'QUERY' :
                QUERY = mValue;
                return true;
                break;
            case 'TARGET' :
                TARGET = mValue;
                return true;
                break;
            case 'SCRIPT' :
                SCRIPT = mValue;
                return true;
                break;
            case 'MSG' :
                MSG = mValue;
                return true;
                break;
            default:
                return false;
                break;
        }   
    }

    this.getData = function (sType) {
        switch (sType) {
            case 'DEFAULT':
                getDefault (START);
                break;
            case 'FILE_LINE':
                getFile (START);
                break;
            case 'FILE_PATTERN':
                getFilePat (START);
                break;
            case 'DB':
                getDB (START);
                break;
        }
    }
}

Merci par avance :-)


Cette discussion est classée dans : data, msg, parent, oxmlhttp, istart


Répondre à ce message

Sujets en rapport avec ce message

window.open provoque un scrolling (Top) sur la fenêtre parent. Est-il possible d'éviter ce déplacement ? [ par dam ] Je fais appel à window.open, à partir d'un lien sur une page (qui fait 2 écrans de haut). Ce lien est placé en bas de page.Lorsque je clique sur le li Rafraichir la fenetre "parent" [ par aurélien ] Bonjour à tous, J'ai une page en html/php a partir de laquelle, en cliquant sur un bouton, j'ouvre un popup, et j'aimerais que lorsque je ferme ce pop Quelqu'un pourrait m'expliquer mon erreur SVP [ par Adagyo ] Bonjour,Voici mon problème:J'ai une fenêtre pricipale avec un champs hidden:var chp = new Array();......Cette page ouvre un popup dan bouton radio [ par alexjet ] Bonjour à tous , j'aimerai récuperer la valeur de mes boutons radio lors d'un évènement onclick sur mon bouton envoyer.Voici mon script : function con FRAMES!!!!! [ par mimipoussinette ] Bonjour,J'ai deux frames, un "Filtre" et l'autre "Liste"Depuis mon frame "Liste", je souhaite remplir la valeur d'un formulaire du frame "Filtre", au frame grand-parent ? [ par atarax ] hello,je bosse sur un site qui contient beaucoup de frame, l'une d'elles au chargement (via onload) change la page menu par une autre, la frame menu f recherche frame & executer fonction [ par Bichon63 ] bonjour, voila j'ai fais une fonction qui recheche une frame et qui ensuite execute une fonction. le soucis c'est que ca fonctionne sous ie mais pas s Kill ma mêre [ par PascalLF ] Salut,je voudrais pouvoir fermer une fenêtre par une autre qui a était créer dans la précedente (pas très clair !?). Sachant que dans ma deuxième (cel Fermer fenêtre avec cadres sans confirmation [ par joekid1 ] Bonjour, je débute en html et javascript.J'ai créé une page web en html avec 2 cadres.Je cherche à pouvoir fermer sans message de confirmation, la fen pourriez vous me dire ce que ca fait ca -> [ par babybutt ] MSIE = (navigator.appName=="Microsoft Internet Explorer")?true:false;if (parent.frames.length>0) parent.location.href = location.href;j'y connais rien


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales