Bonjour,

Je ne viens pas pour "crier au secours" mais pour crier: conseillez moi !

Voilà, dans le cadre d'un développement, j'ai écris pour la première fois des fonction en JS presque tout seul.
Etant débutant, j'aimerai avoir des conseils, critiques pour optimiser mon code.
Sa m'aidera à l'alléger, "l'accélérer" et surtout sa m'aidera à avancer !

Je remercie d'avance ceux qui se lancerons dans cette lecture, "décortication" de ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
 
var langue = document.documentElement.lang; /* Récupère la langue: balise html (var global) */
var save_design; /* sauvegarde du design (var global) */
 
 
function loadMain(){ /* fonction utilisé dans la balise <body onLoad=""> */
    design(save_design);
}
 
 
function getXMLHttpRequest() { /* Instance XMLHttpRequest */
    var xmlhttp = null;
    if (window.XMLHttpRequest || window.ActiveXObject) {
        if (window.ActiveXObject) {
            try {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch(e) {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        else {
            xmlhttp = new XMLHttpRequest(); 
        }
    } 
    else {
        alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest.");
        return null;
    }
    return xmlhttp;
}
 
 
function getRSS(){ /* obtient un lien rss via un fichier .txt en fonction de la langue reconnu(celle du <html lang> */
    var rss = getXMLHttpRequest();
    rss.open('GET', 'para.txt', false);
    rss.send(null);
    var ligne = rss.responseText.split(/\n/g);
    switch(langue){
        case 'fr':
            linkRss = ligne[1];
            return linkRss;
        break;
        case 'en':
            linkRss = ligne[2];
            return linkRss;
        break;
        case 'de':
            linkRss = ligne[3];
            return linkRss;
        break;
        case 'es':
            linkRss = ligne[4];
            linkRss;
        break;
        case 'it':
            linkRss = ligne[5];
            return linkRss;
        break;
    }
}
 
 
function showNews(){
    getRSS(); /* obtient le lien rss */
    var New = getXMLHttpRequest(); /* instance XMLHttpRequest */
    New.onreadystatechange = function() {
        if(New.readyState == 4){
            if(New.status == 200){
                xmlDoc=New.responseXML;
                var x=xmlDoc.getElementsByTagName('item');
                for(var i=0; i<x.length; i++){
		    document.write('<div class="info">');
	            document.write('<h5 class="title">');
		    document.write(x[i].getElementsByTagName('title')[0].childNodes[0].nodeValue);
		    document.write('</h5> <br />');
		    document.write('<p>');
		    document.write(x[i].getElementsByTagName('description')[0].childNodes[0].nodeValue);
		    document.write('</p> <br />');
		    document.write('<a href=');
		    document.write(x[i].getElementsByTagName('link')[0].childNodes[0].nodeValue);
		    document.write('> Get more...</a> <br /> <br />');
		    document.write('<p class="publie">');
		    document.write(x[i].getElementsByTagName('pubDate')[0].childNodes[0].nodeValue);
		    document.write('</p>');
		    document.write('</div> <br />');
		}
            }
	    else {
		document.write('<p style="margin-left: 55px"> Ethernet Offline </p>');
	    }
	}
    }
    New.open('GET', linkRss, false);
    New.send(null);
}
 
 
function design(style) { /* change le design sur un click d'un input de type select*/
    if (style == 'eurosatory') {
        save_design = 'eurosatory';
        var lien_css = document.createElement('link');
        lien_css.href = "../css/design-eurosatory.css";
        lien_css.rel = "stylesheet";
        lien_css.type = "text/css";
        document.getElementsByTagName("head")[0].appendChild(lien_css);
    }
    else if (style == 'blue') {
        save_design = 'blue';
        var lien_css = document.createElement('link');
        lien_css.href = "../css/design-blue.css";
        lien_css.rel = "stylesheet";
        lien_css.type = "text/css";
        document.getElementsByTagName("head")[0].appendChild(lien_css);	
    }
    else if (style == 'pulse') {
        save_design = 'pulse';
        var lien_css = document.createElement('link');
        lien_css.href = "../css/design-pulse.css";
        lien_css.rel = "stylesheet";
        lien_css.type = "text/css";
        document.getElementsByTagName("head")[0].appendChild(lien_css);	
    }
    else {
        save_design = 'origine';
        var lien_css = document.createElement('link');
        lien_css.href = "../css/design-origine.css";
        lien_css.rel = "stylesheet";
        lien_css.type = "text/css";
        document.getElementsByTagName("head")[0].appendChild(lien_css);
    }
}