Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Από που να ξεκινήσω; Που θα βρω; κ.α. γενικές ερωτήσεις για την δημιουργία μιας ιστοσελίδας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
g_p
Δημοσιεύσεις: 134
Εγγραφή: 28 Μάιος 2010 12:43

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από g_p » 26 Οκτ 2010 14:26

Παιδια κατασκευάζω μία σελίδα η οποία αποτελείται από τα εξής divs:

O container περιλαμβάνει τα εξής:

1. επικεφαλίδα
2. οριζόντιο μενού
3. βασικό περιεχόμενο
4. footer

Θέλω όταν ο χρήστης κάνει οπουδήποτε κλικ στη σελίδα να αλλάζει ΜΟΝΟ
το βασικό περιεχόμενο και να παραμένουν ΣΤΑΘΕΡΑ τα υπόλοιπα: επικεφαλίδα,οριζόντιο μενού και footer.

Πώς μπορεί κάποιος να το υλοποιήσει αυτό??εννοώ υπάρχουν κάποια παραδείγματα στο internet για να διαβάσω??

Επίσης, το site είναι δυναμικό (MYSQl,php), οπότε το basic_content φορτώνει από την βάση

Παρακάτω είναι μια απλή εικόνα για την ιεραρχία των divs (html)

Ευχαριστώ

Κώδικας: Επιλογή όλων

<body>
    <div class="container">
           <div id="heading">
           </div>
           <div id="navigation_menu"
           </div>
           <div id="basic_content">
           </div>
          <div id="footer">
          </div>
    </div>
</body>

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από korgr » 26 Οκτ 2010 20:05

Εσύ σε κάθε σελίδα θα αλλάζεις μόνο το content και θα κρατάς και τα στεθερά divs
Επειδή από την δεύτερη κλήση της σελίδας θα φορτώνουν από την cache, θα φαίνεται πως αλλάζει μόνο το content.
Αλλιώς πας για frames, iframes κλπ που δεν συνιστώνται και αποφεύγονται σαν κακη πρακτικη (και του web design και του SEO)

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από dimsis » 26 Οκτ 2010 20:23

Αν κατάλαβα καλά αυτό που ψάχνεις είναι μια ας την πούμε index.php που θα έχει κάτι σαν:

<?php include 'header.php' ?> όπου θα περιλαμβάνει τα: body>

Κώδικας: Επιλογή όλων

    <div class="container">
           <div id="heading">
           </div>
           <div id="navigation_menu"
           </div> 
κάνε μετά ένα
<?php include 'basic_content.php' ?> με το

Κώδικας: Επιλογή όλων

<div id="basic_content"></div> 
και άλλο ένα <?php include 'footer.php' ?> για τα υπόλοιπα:

Κώδικας: Επιλογή όλων

 <div id="footer">
          </div>
    </div>
</body> 
μέσα στο div του basic_content.php θα βάλεις τον κώδικα που τραβάει το άρθρο που θέλεις να εμφανίσεις από την βάση, έτσι όταν για παράδειγμα πας στη σελίδα index.php και περάσεις από form ή από url ένα κλειδί για την εγγραφή του άρθρου που θέλεις να διαβάσεις ( π.χ. index.php?id=42 ) τότε το πρώτο include θα σου δείξει ότι έχεις στο header το μεσαίο θα σου φορτώσει το περιεχόμενο από τη βάση και το άλλο ότι έχεις στο footer.


Αν πάλι δεν κατάλαβα καλά και θέλεις να μην ξαναφορτώνονται ποτέ τα header και footer και να φορτώνεις δυναμικά το basic_content.php τότε μπορείς να το κάνεις με ajax. Δηλαδή αντί να ξαναφορτώνει την index.php κάνεις μια κλήση ajax σε ένα αρχείο php όπου ενημερώνει το #basic_content π.χ. με jquery με τις load ή ajax

heisenberg
Δημοσιεύσεις: 88
Εγγραφή: 28 Αύγ 2009 15:15

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από heisenberg » 26 Οκτ 2010 20:40

Αυτό που θέλεις γίνεται με ajax
Δεν υπάρχει καλύτερο πράγμα από το να έχεις γυναίκα δικηγόρο ...

g_p
Δημοσιεύσεις: 134
Εγγραφή: 28 Μάιος 2010 12:43

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από g_p » 27 Οκτ 2010 11:39

Παιδιά ευχαριστώ για τις απαντήσεις σας,
από Ajax δεν έχω γνώσεις και ειμαι λιγο επιφυλακτικος στο να τη χρησιμοποιησω,
είδα τα link για .load() και .ajax()
θα είναι έυκολη διαδικασία να ενσωματωσω αυτα στον κωδικα μου???

ευχαριστώ

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από korgr » 27 Οκτ 2010 14:54

Νομίζω πως από πλευράς SEO δεν ενδείκνυται η δια της ajax μεθόδου φόρτωση (ας με διορθώσεις οι ειδικοί).

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από dimsis » 27 Οκτ 2010 14:55

+1 (από έναν μη ειδικό) :)

heisenberg
Δημοσιεύσεις: 88
Εγγραφή: 28 Αύγ 2009 15:15

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από heisenberg » 27 Οκτ 2010 15:51

korgr έγραψε:Νομίζω πως από πλευράς SEO δεν ενδείκνυται η δια της ajax μεθόδου φόρτωση (ας με διορθώσεις οι ειδικοί).
Πράγματι, αλλά εξαρτάται τι θέλεις να κάνεις και άρα σε ποιό κομμάτι θα βαλεις ajax
Δεν υπάρχει καλύτερο πράγμα από το να έχεις γυναίκα δικηγόρο ...

Άβαταρ μέλους
Kainourios
Ruby Moderator
Δημοσιεύσεις: 504
Εγγραφή: 18 Μάιος 2005 16:20
Τοποθεσία: Κορυδαλλός
Επικοινωνία:

Πώς μπορώ να φορτώνω ΜΟΝΟ το βασικό content σε μια σελίδα??

Δημοσίευση από Kainourios » 27 Οκτ 2010 16:23

Ένας άλλος τρόπος αν δεν έχεις πολύ περιεχόμενο είναι να τα φορτώνεις όλα σε μια σελίδα και να αλλάζεις το περιεχόμενο μέσω javascript (δε θα αργεί καθόλου αλλά μάλλον είναι λίγο μούφα υλοποίηση).
korgr έγραψε:Νομίζω πως από πλευράς SEO δεν ενδείκνυται η δια της ajax μεθόδου φόρτωση (ας με διορθώσεις οι ειδικοί).
Ναι αν το κάνει μόνο με ajax θα έχει θέμα γιατί τα bots είναι χρήστες με απενεργοποιημένη την javascript (όπως και οι χρήστες χωρίς javascript θα βλέπουν μόνο την πρώτη σελίδα). Θα χρειαστεί να κάνει javascript degradation (το κάνουν αυτόματα όλα τα σύγχρονα frameworks και αυτό που θέλει γίνεται εύκολα με jquery). Θα πρέπει δηλαδή να λειτουργεί η σελίδα του και σε χρήστες χωρίς javascript.

Ένα απλό παράδειγμα στα γρήγορα πάνω στο παράδειγμα του dimsis για να καταλάβεις πώς δουλεύει η $.ajax:

Κώδικας: Επιλογή όλων

$&#40;document&#41;.ready&#40;function&#40;&#41;&#123;
      $&#40;'.page'&#41;.click&#40;function&#40;&#41; &#123;
		$.ajax&#40;&#123;
			beforeSend&#58; function&#40;request&#41;&#123;addSpinner&#40;&#41;;&#125;, 
			complete&#58; function&#40;request&#41;&#123;removeSpinner&#40;&#41;&#125;, 
			data&#58; 'page_name=' + page_name, 
			dataType&#58;'script', 
			type&#58;'post', 
			url&#58;'/content/ajax_content'
		&#125;&#41;;
      return false; 
      &#125;&#41;;
&#125;&#41;;
Όπου περνάς σαν παράμετρο το page_name και στο url σου /content/ajax_content κάνεις έλεγχο της παραμέτρου και σερβίρεις το ανάλογο περιεχόμενο.

Βέβαια πρέπει να προσέξεις διάφορα πράγματα, γι' αυτό εδώ ένα πιο ολοκληρωμένο άρθρο γι' αυτό που θες: http://css-tricks.com/video-screencasts ... c-content/

Απάντηση

Επιστροφή στο “Γενικές ερωτήσεις κατασκευής ιστοσελίδων”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης