Frames naar divs probleem

Status
Niet open voor verdere reacties.

Wuggles

Nieuwe gebruiker
Lid geworden
17 jan 2009
Berichten
2
Hallo,
Ik heb laatst een poging gedaan mijn frames om te toveren naar divs, dus helemaal geen frames meer te gebruiken.
Maar dat van frames naar divs omtoveren blijkt niet zo gemakkelijk te willen gaan.

Even uitleggen hoe mijn site(spel) in elkaar zit.
Ik heb pagina(i.php) waarin een div menuleft, div content en een div menuright zit.
In div menuleft staan een aantal links, 30 ofzo.
Het is de bedoeling dat als je op de link klikt er een pagina geopent wordt in de content div.
Dit doe ik via Ajax, zodat hij niet de hele tijd de pagina hoeft te refreshen.
Ik zorg dat ajax een php pagina opent waarin hij de file include.
Dit is me opzich wel gelukt, alleen krijg ik het probleem dat geen enkele javascript code wordt uitgevoerd in die pagina.

Wanneer die php de file(die in content moet) include wordt de javascript overgeslagen..
Hebben jullie een ander idee hoe ik efficient iframes kan nabootsen met divs, javascript en misschien ajax?
ik wil graag dat er niet al te veel refreshes zijn als dat kan.

Martin
 
Dat kan, maar het is echt niet nodig. Er is helemaal niks mis met pagina refreshes, behalve als je ze automatisch veroorzaakt. Zeker voor iets als een menu is het overkill. Mensen zijn gewend dat een pagina herlaad als je op een link klikt. En voorzover bandwitdh een argument is, er hoeft alléén html gedownload te worden, alle plaatjes en dergelijke worden ge-cached. Ajax is een speeltje, vaak leuk, zelden handig en meestal betrouwbaar. Maar meestal is niet goed genoeg.

Ajax gebruiken brengt erg veel nadelen met zich mee. Geen back/forward geschiedenis, geen permalinks. Dit is te omzeilen, maar waarom zou je? Gebruik gewoon standaard HTML links naar een nieuwe pagina. Niks mis mee, iedereen kent ze, iedereen begrijpt ze ;)
 
Laatst bewerkt:
Ik denk dat het wel werkt als je de javascript functies die je gebruikt in de hoofd-html zet (dus in de pagina die je aan het begin laadt), maar deze manier van navigeren neemt wat moeilijkheden met zich mee. Wanneer je links in je nieuw geladen content hebt zou je die ook elke keer met javascript moeten 'registreren', en er zijn geen attributen in HTML die je kan gebruiken voor het navigeren tenzij je hacks gebruikt: door bijv. attributen te verstoppen de class attribuut.
Toch ben ik het niet helemaal eens met Glest, wanneer je eenmaal een goede bibliotheek schrijft (zodat je ze voor nieuwe sites kan hergebruiken) met objecten om dit mogelijk te maken is het misschien best de moeite waard, je kan dan effecten toevoegen die zonder AJAX onmogelijk zouden zijn. (Tenzij je met Flash werkt)

Over back and forward, het aanroepen van nieuwe content zal hoogstens een paar argumenten behelzen. Je kan dus best zelf een back en forward knop in je layout toevoegen en die argumenten in een array opslaan. Het is dus functionaliteit die vergeleken met de rest van je AJAX-site niet eens zo moeilijk is. Maar voor de gebruiker wel, die snel geneigd zal zijn om op de back knop van zijn browser te klikken en daarmee je site verlaat (je hebt immers nooit een back geschiedenis op jouw site)

Nog een afweging; accessibility, een requirement voor goede accessibilitity is dat een site ook zonder javascript werkt. Wanneer je gebruik maakt van AJAX is dit dus niet het geval. Je zou dus eigenlijk moeten beginnen met een simpele HTML-site en dan de HTML functionaliteit via javascript vervangen.
 
Laatst bewerkt:
Het 'probleem' met de back button krijg je ook als je frames gebruikt. Door AJAX toe te voegen word het er niet erger op, als je het al erg kan noemen. Je hebt immers een menu, dus ik zie niet in waarom je op de back-button zou gaan drukken.

In ieder geval, ik heb nog nooit gezien dat 'de javascript word overgeslagen' door een XHR. PHP voegt echt het volledige document in. Probeer de PHP pagina (met de include dus) eens in een appart venster te openen om te kijken of het script dan wel werkt.

Misschien heb je een foutje in de scripts op de hoofdpagina staan waardoor de browser de andere scripts niet meer uitvoert.

Overigens heeft Glest wel een punt. Qua functionaliteit kun je evengoed een normale link gebruiken. Maargoed, soms ziet een XHR inderdaad wat mooier uit.
 
Laatst bewerkt:
Inderdaat JP, je kunt mooie libraries schrijven maar dat verandert niks aan AJAX. Het blijft vaak een leuk speeltje, zelden handig en het werkt meestal.

De back/forward knoppen zijn te reparen, maar het is niet makkelijk en kost behoorlijk wat overhead. Zelf back/forward knoppen toevoegen zou ik zoiezo niet doen aangezien niemand ze gaat gebruiken. Zelfde geldt voor permalinks, ookal zijn die net wat makkelijker en kosten nauwelijks overhead.

Als het gaat om het gebruik van Javascript zijn er twee vragen die je je moet stellen
1) Wat voegt het toe aan mijn site?
2) Wat kost het mijn site?

In dit geval is het antwoord op 1 "een leuk effectje" en het antwoord op 2 "gebruikersgemak en functionaliteit". Makkelijke keuze voor mij.
 
Ik vraag me dan toch af of je wel eens OOP hebt toegepast op javascript/php. Het gaat er namelijk om dat de dynamiek van XHTML werkt via het idee van de ontwerpers. Wanneer je zelf in staat bent om die dynamiek te ontwerpen voor een website kan dat heus wel meer voordelen opleveren dan enkel 'leuke effectjes'. Je krijgt dus een veel rijkere site dan een simpele HTML pagina (met hoogstens forms en frames).

De enige vraag is; heeft de gebruiker javascript aan of niet. De gebruiker zonder javascript krijgt veel minder functionaliteit. Maar haalt wel de requirements! Het is net zoals elk ander aspect in het leven. Wanneer je een fiets hebt kan je de weg op en je mag er ook van uitgaan dat je op je fiets van A naar B kan. Maar je zal niet zo snel -en luxe zijn als een auto en je verwacht ook niet van Rijkswaterstaat dat ze een motor op je fiets zetten wanneer je niet met een auto de weg op gaat.

AJAX afdoen als een leuk speeltje gaat mij iets te ver. Sommige ondersteuningen op een website zijn gewoon niet haalbaar zonder javascript.
 
Laatst bewerkt:
Het meeste wat ik schrijf is OOP, een mooie structuur is altijd meegenomen.

Je vergeet alleen dat op het moment dat je Ajax gebruikt voor het simpelweg openen van pagina's die waardevolle effectjes ten koste gaan van permalinks en een back/forward geschiedenis. Als ik naar de supermarkt op de hoek ga pak ik de fiets (of lopen) in plaats van dat ik eerst een blokje om rij met de auto (één-richtingsverkeer waar ik woon). Ik zeg ook niet dat Ajax alléén een leuk speeltje is, er zijn inderdaad goede toepassingen. Ik zeg dat het vaak een leuk speeltje is, en in het geval van pagina's openen uit je menu is dat zeker het geval.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan