Je suis venu sur un site Web qui semble utiliser Ajax, mais ne comprend pas de fichier js sauf un fichier appelé ajax.js qui a les éléments suivants:clarification d'un certain code
function run(c, f, b, a, d) {
var e = null;
if (b && f) {
document.getElementById(b).innerHTML = f
}
if (window.XMLHttpRequest) {
e = new XMLHttpRequest()
} else {
if (window.ActiveXObject) {
e = new ActiveXObject(Microsoft.XMLHTTP)
}
}
e.onreadystatechange = function() {
if (e.readyState == 4) {
if (e.status == 200 || e.statusText == "OK") {
if (b) {
document.getElementById(b).innerHTML = e.responseText
}
if (a) {
setTimeout(a, 0)
}
} else {
console.log("AJAX Error: " + e.status + " | " + e.statusText);
if (b && d != 1) {
document.getElementById(b).innerHTML = "AJAX Error. Please try refreshing."
}
}
}
};
e.open("GET", c, true);
e.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
e.send(null)
}
Comme vous l'avez deviné , la façon dont il émet des requêtes dans la page avec des requêtes comme celle-ci:
run('page.php',loadingText,'ajax-test', 'LoadSamples()');
Je dois admettre que c'est la première fois que je l'ai vu une page à partir de laquelle je ne pouvais pas comprendre comment les choses sont faites. J'ai quelques questions:
- Est-ce que cet Ajax côté serveur ou quelque chose de similaire? Si non, quelqu'un peut-il clarifier ce qu'est exactement cela?
- Pourquoi l'utilise-t-on? Est-ce pour cacher les détails de la conception? (qui sont autrement révélées en texte brut par javascript)
- Est-ce que ce serait difficile de convertir mon application existante dans ce modèle de conception ? (peut-être une question subjective mais toute suggestion courte fera l'affaire)
Une suggestion?
De quel «modèle» parlez-vous exactement? Ceci est juste une seule fonction - pas assez pour baser un motif. –
@Sean: En général, je vois des scripts comme jQuery inclus dans la section head. Cette page Web a seulement ajax.js inclus et utilise cet appel encore et encore. Suppression de la balise design-patterns également. – Legend
Ce n'est certainement pas côté serveur. Le 'ajax.js' est également téléchargé sur le client et fonctionne également. L'effet est le même que l'intégration de l'ensemble du code dans une plaine '', il est seulement mieux maintenable et réutilisable. – BalusC