| | | | |
| |||||||
| JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Erfahrener Benutzer Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Ja, ich weiß, die Frage wurde bestimmt schon andauernd gestellt. Muss leider trotzdem nochmal fragen, weil ich nichts passendes gefunden habe. Hi erstmal! Ich finde mittlerweile jQuery toll, bin aber doch noch sehr Anfänger in JS. Bin aber bei PHP schon bei den Design Patterns angelangt. Ich muss bei den AJAX-Requests alles in die Callbackfunction stopfen, wenn man davon mehrere hat, dann schachtelt sich das langsam. Mein Oberflächenaufbau ist einem WebOS ähnlich, die Seite soll eigentlich gar nicht neuladen, benötigte Daten werden per AJAX nachgeladen. Ich parse sogar JS seitig, dafür habe ich Templates. Hier schiebe ich gleich meine erste Frage ein: Inwieweit wird ein Server durch einen puren Dateinachladevorgang gestresst? Das ist doch das selbe, wie wenn man ein Bild laden muss, oder? Zurück zum Geschachtel vom Anfang. Ich hab jetzt das Templatenachladen direkt in eine zughörige Cache/Registry Klasse verlagert (statisch) und möchte jetzt bei Bedarf das Template nachladen. Code: Template.get = function(id) {
for (var i = 0; i < Template._registry.length; i++) {
if (Template._registry[i]._id == id) {
return Template._registry[i]._tpl;
}
}
return Template._requestTpl(id);
}
Mir fehlt die Implementierung von Template.requestTpl = function.. Ich habe hier bereits gepostet jQuery Dateien nachladen - AJAX (Asynchronous JavaScripting and XML) Forum, warte allerdings immer noch auf Antwort. Ich sitze etwas untätig herum, daher poste ich hier nochmal, da ich weiß, dass die Forenaktivität besser ist, auch wenn hier eher PHP Experten zu finden sind.. |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Das Einzige, was du tun kannst ist, ein Handle auf das Requestobjekt zurückzuliefern. Den Inhalt selbst kannst du natürlich nicht übergeben, da der zu dem Zeitpunkt noch nicht da ist. Ich würde es aber viel eher umgekehrt machen und eine generische Methode schreiben, die nach einem AJAX-Request die Daten entweder an ein Callback übergibt oder den Kram direkt in einen per Parameter übergebenen DOM-Knoten einfügt. So hast du das AJAX-Objekt selbst gekapselt und kannst es bei Bedarf sogar austauschen. Die Serverlast hängt sehr von den Datenmengen ab. Mit Bildern würde ich es jetzt nicht unbedingt vergleichen, da diese meist ja nur einmal geladen werden. Mehr als ein AJAX-Chat wird die Last aber nicht ausmachen.
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” |
| | |
| | |
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Naja, Bilder werden einmal am Anfang geladen und liegen dann im Cache. Inhalte werden meistens aber nicht gecached und werden somit immer wieder neu geladen. Außerdem findet das Laden nicht nur einmal pro Seite statt, sondern kann durchaus wiederholt werden. Nimm es als eine Seite mit vielen kleinen Bildchen. Als Callback musst du ja nicht immer anonyme Methoden verwenden. Da JavaScript auch Methoden wie Variablen/Eigenschaften behandelt, kannst du diese auch als Wert bzw. Referenz übergeben: Code: function myMethod() {
// ...
};
var callback = myMethod;
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 01.12.2008
Beiträge: 450
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | Okay. Neues, aber immer noch verknüpftes Problem, ich habe aber schon eine Ahnung wo es dran liegen könnte. Code: $tpl._set('widget','<div class="widget">\n<!--div-->\n <div id="{id}">\n {html}\n </div>\n<!--div-->\n</div>');
$(function(){
$.getJSON('get.php?file=test', function(data){
$tpl.extend('widget', 'test', function(){
$tpl.bindTo('test', data, {'root':'div', 'appendTo':'body'});
});
});
});
jBind (jQuery Template) Latest Version Ich vermute meinen Fehler aber schon im oberen Code in der 4ten Zeile. Eben dieses Schachtelgedöns. Ich will aber data binden, wenn auch erst im Callback von extend.. Gibt es da einen einfachen Weg das zu übergeben? Edit. Nein ist es nicht. Ein alert(data) ergibt ein Objekt. Ich hab noch so meine Probleme effektiv zu debuggen... Der Fehler muss wohl in meiner Template Klasse zu finden sein, könnte sich das Jemand ansehen? Geändert von Phoscur (14.03.2009 um 13:11 Uhr). |
| | |
| | |
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Was ist denn das Problem?
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|