Beste phphulp leden,

Ik heb een vraag/Discussiepunt

Idereen maakt met Alax zijn links op de volgende manier:


<script type="text/javascript">
function requestPage()
{
//hier je ajax request
}
</script>
<a href="#" onClick="requestPage()">Pagina</a>


Zoals als algemeen bekend is dit niet goed voor je indexering op bijv. google.

Mijn vraag :
Als ik het op deze manier doe hoe pikt google het dan op?


<script type="text/javascript">
function requestPage()
{
//hier je ajax request
return false ;
}
</script>
<a href="pagina.php" onClick="return requestPage()">Pagina</a>


hoop dat iemand me hier meer informatie over kan geven.

groetjs Jacco

PS: bovenstaande methode heeft ook als voordeel dat je site (mits goed gebouwd natuurlijk) ook gewoon werkt zonder JS
Zoals reeds gezegd, zet JS en CSS uit (browser-instellingen) en ga je site testen.

Edit: Het is aan te raden om dit soort dingen te testen met een browser die uberhaubt geen css, plaatjes en js ondersteunt. Gewoon tekst en that's it.

Edit 2: Ik was de naam even kwijt, maar je kunt bv. Lynx eens uitproberen.
Das wel heel dramatisch frank.

Maar als ik jou reactie zo lees kun je dus op deze manier zowel AJAX gebruiken als indexering in google op orde houden
Edit: Het is aan te raden om dit soort dingen te testen met een browser die uberhaubt geen css, plaatjes en js ondersteunt. Gewoon tekst en that's it.


Bestaan er nog van dit soort "browsers"? en wil je die mensen uberhaupt op je site hebben?

Als je met AJAX je pagina's laad en iemand heeft js uit staan dan kan die dus geen pagina's laden niet echt handig lijkt me...
De kracht van Ajax zit hem in de interactie tussen de bezoeker en de data op de server. Google is echter een bezoeker die niet zo heel veel uitspookt. Het botje gaat alle links bij langs en dat is het wel. Wanneer jij een site hebt waarbij ajax alleen maar interactie levert via links, dan heeft ajax bij jou niet zo veel toegevoegde waarde. Ok, het scheelt een page-refresh, maar dat is alles. Daar zullen de bezoekers niet echt warm of koud van worden.

Ik ken jouw site niet, maar ik krijg de indruk dat je de (grote) voordelen van ajax niet (volledig) gebruikt.

Nog even over de page-refresh, dat is nu net iets wat een belangrijke eigenschap is van de browser en dus ook iets wat bezoekers verwachten. Dit kun je dus zelfs in je voordeel gebruiken, het voldoet helemaal aan de verwachtingen van de bezoeker!

Voorbeeldje:
Een bezoeker vult een online enquete in. Deze bestaat uit 20 vragen. Voor het gemak ga je deze opknippen in 7, 7 en 6 vragen. Dit los je op met ajax, van de ene naar de andere pagina gaat zonder refresh. Nadat de 3e pagina van het formulier is ingevuld en de bezoeker klikt op submit, ga je dat niet met ajax doen, maar gewoon met een verwijzing naar een andere pagina. De wordt in zijn geheel geladen, precies zoals dat vroeguhh gebeurde.

Een browser blijft een browser en zo denkt de gebruiker van de browser er ook over. Voldoe dus aan de verwachtingen die een bezoeker heeft en ga niet het gebruik van de browser veranderen. Dat is leuk voor de techneut, maar niet voor de doorsnee websurfer.

@Rik: De Google-bot is zo'n gebruiker en die wil ik zeker op mijn sites hebben. Daarnaast zijn er vele slechtzienden die dit soort browsers ook gebruiken.
Rik schreef op 14.09.2007 20:59
Edit: Het is aan te raden om dit soort dingen te testen met een browser die uberhaubt geen css, plaatjes en js ondersteunt. Gewoon tekst en that's it.


Bestaan er nog van dit soort "browsers"? en wil je die mensen uberhaupt op je site hebben?

Als je met AJAX je pagina's laad en iemand heeft js uit staan dan kan die dus geen pagina's laden niet echt handig lijkt me...


@Rik het hele point is juist dat dit zowel met als zonder JS werkt.

@Frank

Ik ben prima op de hoogte van de mogelijkheden van Ajax.
Dit topic is naat aanleiding van
http://www.phphulp.nl/forum/showtopic.php?cat=5&id=38134&lasttopic=1
Omdat ik daarin niet volledig opfftopic wou gaan heb ik dit topic aangemaakt.
Het mooiste zou zijn als je je ajax unobstrusive maakt. Dwz: javascript wordt pas later aan een html only veld toegevoegd, en wanneer javascript aanwezig is worden de enriched components geladen.

Unobtrusive Javascript of unobstrusive AJAX wordt dit ook wel genoemd. Echter, bij complexere ajax applicaties wordt het wat lastig en soms ook niet nodig om het compatible te houden voor links browsers (bijvoorbeeld voor intranet sites waarbij bekend is dat alle gebruikers een nieuwe versie browser zullen of kunnen gebruiken.

Waarom mag tegenwoordig de pagina niet meer refreshen? Weet je wat.. Bezoekers vinden het niet fijn om veel te klikken, we laten bij iedereen een chip in z'n hoofd inplanteren die weet waneer een bezoeker op welke link wil klikken en dan gaat hij automatisch naar de pagina die aan die link is gekoppeld! Strak plan hè.. Ik vind AJAX leuk, ik vind het leuk om er een beetje dingen mee te doen maar dat tegenwoordig alle pagina's geladen moeten worden met JS.. slaat nergens op.

GVD hoe open je die browser zonder css? ik heb die zip uitgepakt.. eerst eten :)
Mits op de goede manier gebruikt is AJAX een mooi ding.

Ik heb alleen een beetje het idee dat we aan de vraagstelling voorbij gaan. Het gaat in dit geval om de manier waarop je je events koppelt aan acties van de gebruiker.

Wat dat betreft is

    <a href="#" onclick="functie ();">

echt niet meer van deze tijd. Net zoals je je CSS (lay-out) scheidt van je markup (X)HTML vanwege transparantie en onderhoudbaarheid, hoor je ook je behavior-layer (scripts dus, en JavaScript) valt daaronder, uit elkaar te houden.

Een betere methode is dan al deze:

    <head>
        window.onload = init;
        function init () {
            document.getElementById ('mijn_link').onclick = function () {
                return confirm ('link volgen, zeker weten?'); // bijvoorbeeld
            }
        }
    </head>


Nadeel van die methode is dat je maar 1 methode kunt koppelen aan 1 event. En kom je uit bij het event registering model. Daarvoor heb je een crossbrowser methode nodig om acties te koppelen aan events.

Zie daarvoor deze tut van PPK.

In de methode die ik gebruik ziet het voorbeeld er dan zo uit:

    <head>
    add_event (window, 'load', function (e) {
        if (!confirm ('link volgen, zeker ')) {
            stop_event (e);
        }
    }, false);
    </head>


Aan de hand van het laatste voorbeeld zou je zeggen; wat een hoop werk voor 1 linkje. Zeker, maar wat als je een hele serie links op je pagina hebt waaraan je een event wilt koppelen? Dan ga je namelijk pas het voordeel van deze methode zien:

    <head>
        add_event (window, 'load', function () {
            var x = document.getElementsByTagName ('a');
            for (i = 0; i < x.length; i++) {
                // nu hier aan elke link je methode aan het onclick event toevoegen
            }
        }, false);
    </head>


Voordeel: je (X)HTML blijft clean, dus makkelijk leesbaar voor Google en je hebt alle functionaliteit van JavaScript (dus ook van AJAX) tot je beschikking.

Reageren