Όλα ωραία και καλά με το AJAX αλλά γίνεται να κάνουμε AJAX σελίδες χωρίς να γράφουμε ούτε γραμμή javascript αλλά μόνο να ασχολούμαστε με την λειτουργία της ASP.NET σελίδας; Για το σκοπό αυτό ανέπτυξα πρόσφατα ένα server control που σε συνδυασμό με ένα είδος javascript client framework, παράγει αυτόματα τον javascript κώδικα για την ανανέωση της σελίδας στον browser.
Μια δοκιμαστική σελίδα βρίσκεται στην διεύθυνση http://research.araneous.com/AJAXTest/bubischat.aspx
Τα βήματα της δημιουργίας της ήταν τα εξής:
-Έφτιαξα την σελίδα με τα textboxes και τα buttons και έγραψα τον κώδικα για τα events τους μέχρι που είχα μια λειτουργική σελίδα οπού, με postbacks και refresh, οι χρήστες της μπορούσαν να κάνουν chat.
Για να την μετατρέψω σε AJAX σελίδα:
-Έκανα την σελίδα να κληρονομεί από την AjaxPage.
-Έβαλα μέσα στο AjaxPanel control που ανέπτυξα, όλα τα controls της σελίδας. (Το AjaxPanel λειτουργεί στον designer του Visual Studio όπως ακριβώς και το Panel.)
-Έβαλα στο web.config το κατάλληλο HttpHandler:
<httpHandlers>
<add verb="*" path="AjaxDataProvider.aspx" type="Ajax.AjaxHttpHandler, Ajax"/>
</httpHandlers>
-Πρόσθεσα δυο γραμμές στο Page_Load της σελίδας:
RegisterPageInSession("bubis_chat");
SetCallBackTimerInterval(3000);
(Το δεύτερο είναι για να μπορεί να εμφανίζει η σελίδα τα νέα περιεχόμενα του chat box αυτόματα)
Και voila! Εγέννετω AJAX.
To AjaxPanel μπορεί να εντοπίσει πια controls που περιέχει έχουν αλλάξει και να στείλει javascript κώδικα για να ανανεωθούν μόνο αυτά, όπως επίσης μπορεί να εμφανίσει καινούργια controls ή να διαγράψει υπάρχοντα (ενώ, αντίθετα, χρησιμοποιώντας postback events δεν μπορούμε να προσθέτουμε δυναμικά καινούργια controls.)
Θα ήθελα να ακούσω τα σχόλια/επικρίσεις/μηνύσεις σας.
Project:
MagicAjax.NET