ugrás a tartalomhoz

ajax honlap igy szokták?

kriszrap · 2012. Júl. 31. (K), 11.36
sziasztok :)
elkeztem egy ajax honlapot hát nem vagyok benne biztos hogy igy kell csinálni gondolom van egyszerübb megoldás.Azt csinálom hogyha rá nyomok a menüpontra akkor teruletbe betölti a dolgokat és igy sokkal gyorsabb.
a gombok:
<button type="button" onclick="home()">főoldal</button>
<button type="button" onclick="chat()">chat</button>

ezt egy home.php tölöm ahol a divnem tartalom értéket attam vagy is csak egy fáljba dolgozom.(home.php)
<script type="text/javascript">
function home()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("tartalom").innerHTML=xmlhttp.responseText;
    }else{  
    document.getElementById("tartalom").innerHTML = '<img src="ajax-load.gif" height="100" weight="100">';  
    }  
  }
xmlhttp.open("GET","home.php",true);
xmlhttp.send();
}
function chat()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("tartalom").innerHTML=xmlhttp.responseText;
    }else{  
    document.getElementById("tartalom").innerHTML = '<img src="ajax-load.gif" height="100" weight="100">';  
    }  
  }
xmlhttp.open("GET","fal.php",true);
xmlhttp.send();
}
</script>

azt a kérdésem ajax honlapoknál is igy csinálják vagy más modon?
 
1

Így (is) szokták. Kérdés,

Hidvégi Gábor · 2012. Júl. 31. (K), 12.05
Így (is) szokták. Kérdés, hogy miért is jó? Lehet, hogy gyorsabb lesz, de ha nem ésszel csinálod, az AJAX-szal betöltött oldalakat a keresők nem tudják beindexelni.
2

ezt hogy lehet ki küszöbölni

kriszrap · 2012. Júl. 31. (K), 12.10
ezt hogy lehet ki küszöbölni ?
3

Ésszel

Hidvégi Gábor · 2012. Júl. 31. (K), 12.18
Úgy, hogy ismered a HTML-t és a Javascriptet, valamint a keresők működését.
4

Úgy, hogy először írsz egy

kuka · 2012. Júl. 31. (K), 12.27
Úgy, hogy először írsz egy tökéletesen működő, hagyományos nem-AJAX oldalt, majd utólag optimizálod a működését AJAX-szal.
5

Bár nem látom a teljes

szaky · 2012. Júl. 31. (K), 13.18
Bár nem látom a teljes feladatot, de szerintem sokat nem nyersz sebességben sem, ha teljes tartalmakat ajaxal töltesz be. Természetesen megoldható, és ha rákeresel a diszkrét javascript -re, találsz keresőbarát javascript megoldásokat. Én személy szerint nem tartom szerencsésnek az ajax teljes tartalombetöltésre való felhasználását, de ez legyen az én bajom :)
Viszont, hamár. Minimum az, hogy nem minden függvénynél copypastoljuk be a teljes xmlhttp létrehozását, hanem külön megírjuk egy eljárásban. Ugye nem kell mondani, miért.
Igazán szép megoldás meg az, hogy (pláne, ha js-intenzív felületet akarsz készíteni) keresel egy számodra szimpatikus JavaScript frameworköt, és rengeteg munkát leveszel a válladról.
6

"Én személy szerint nem

kriszrap · 2012. Júl. 31. (K), 20.57
"Én személy szerint nem tartom szerencsésnek az ajax teljes tartalombetöltésre való felhasználását, de ez legyen az én bajom :)"
öö ezt kicsit bővebben kifejtenéd hogy miért döntöttél és azt is hogy te hogy csinálnád?:)

még egy problémám akadt ajaxnál ha frissít a felhasználó akkor kezdőlapra frissít ezzel igazából számoltam csak nem tok erre megoldás.:(
7

Korlátozások

Poetro · 2012. Júl. 31. (K), 23.14
Ha nem írod meg az oldalt AJAX nélkül, akkor a keresőmotorok, szöveges böngészők, egyes felolvasó programok nem fogják tudni (megfelelően) kezelni az oldaladat, ha egyáltalán bármilyen tartalmat ki tudnak belőle olvasni. Próbáld csak meg használni az oldalt kikapcsolt JavaScript mellett.
Ezen kívül az AJAX-szal betöltött tartalmat, amennyiben szeretnénk interaktívvá tenni, akkor ismételten fel kell dekorálni a megfelelő eseménykezelőkkel, be kell tölteni a megfelelő további JavaScript és CSS fájlokat stb., amikre szüksége van a tartalomnak a működéshez illetve megjelenítéshez.
még egy problémám akadt ajaxnál ha frissít a felhasználó akkor kezdőlapra frissít ezzel igazából számoltam csak nem tok erre megoldás

Erre azért van megoldás, a neve History API.
8

poetrohmm... kicsit

kriszrap · 2012. Aug. 1. (Sze), 00.36
poetro
hmm... kicsit kínai
"Ezen kívül az AJAX-szal betöltött tartalmat, amennyiben szeretnénk interaktívvá tenni, akkor ismételten fel kell dekorálni a megfelelő eseménykezelőkkel, be kell tölteni a megfelelő további JavaScript és CSS fájlokat stb., amikre szüksége van a tartalomnak a működéshez illetve megjelenítéshez."
vagy is az ajax hátrányos is lehet?O.o
Vagy már megint butus kodom:)

ajax vagy js?:)
9

Közepébe

Pepita · 2012. Aug. 1. (Sze), 01.09
Az az érzésem, kicsit előreszaladtál az ajax-szal, van némi alapvető hiányosság ismereteidben, amiket pótolni kéne.
Ami "kínai": Poetro itt arra gondolt - szerintem -, hogy a lekért tartalmad "menünként változik", mindegyik "oldalhoz" tartoznak CSS-ek, JS-ek, felhasználói események (klikk, hover, stb.), ezek szintén oldalanként különböznek. Tehát a különböző oldalakhoz való különböző egyéb adatokat, programokat is be kell töltsed, nem csak a HTML-t.
vagy is az ajax hátrányos is lehet?O.o
Mint minden (nem csak webes) eszköz, az AJAX is hasznos, ha jól használod és káros, ha nem. Fogadd meg azt a tanácsot, hogy működik az oldalad AJAX és JS nélkül is, ezeket kiegészítőként használd.
ajax vagy js?:)
Ugye itt inkább azt akartad írni: AJAX és JS.

Légyszíves használj nagybetűket és írásjeleket, ahol kell.
10

Köszönöm pepita. Poetró

kriszrap · 2012. Aug. 1. (Sze), 12.02
Köszönöm pepita.

Poetró History API itt meik parancsra gondoltál??

A honlapom csak belépéskor van historyja uttána semmi vissza gombalse megy :(
11

Ez a baj

Poetro · 2012. Aug. 1. (Sze), 12.06
Épp ez a baj. Ezt kellene megoldanod például a History API segítségével. De ehhez előbb JS nélkül is működnie kellene az oldalnak.
13

Blogbejegyzés

Poetro · 2012. Aug. 1. (Sze), 13.16
Egyébként pár éve írtam erről egy blogbejegyzést, mondjuk ott még hash-t használtam, nem History API-t, de kiindulásnak tökéletesen megfelel neked.
12

kriszrap, már nem először

Hidvégi Gábor · 2012. Aug. 1. (Sze), 12.59
kriszrap, már nem először bizonyítod be két pillanat alatt, hogy fogalmad sincs, hogyan működik a web és a böngészők. Mi lenne, ha az alapoktól kezdve végigmennél a szamárlétrán, és ha már úgy érzed, mindent tudsz, akkor kezdesz csak AJAX-os fejlesztésekbe?

A tisztelt fórumtársaimat sem értem, hogy beleesnek mindig az ilyen csapdákba, és olyanon próbálnak meg segíteni, aki annyi tiszteletet nem mutat irányukba, hogy megfogadja a tanácsaikat.
14

1 meg van a komplet

kriszrap · 2012. Aug. 1. (Sze), 18.43
1 meg van a komplet honlap(php,html,ajax(chat fal), js(chat fal))
2 js nélkül működik a honlapom egyedül a chat fal nem.
3 ajax szal csak a fontos dolgokat hozatom be (csak a tartalmat és csak ami kell).

Tehát a különböző oldalakhoz való különböző egyéb adatokat, programokat is be kell töltsed, nem csak a HTML-t.

mindent behozz php css js képeket mindent.

Fogadd meg azt a tanácsot, hogy működik az oldalad AJAX és JS nélkül is, ezeket kiegészítőként használd.

az hogy egy divbe be hozza be a dolgokat az kiegészítőnek számít?:D

Ezt kellene megoldanod például a History API segítségével. De ehhez előbb JS nélkül is működnie kellene az oldalnak.

hát pl fal amit csináltam pici jsel azt biztos nem fog js tiltással menni vagy is ink a smilek beszúrása meg 5 másodperces fríssités.

ennyire tudtam válaszolni.
16

Ne haragudj, de saját magadat cáfolod.

Pepita · 2012. Aug. 2. (Cs), 00.19
Kiemelem:
2 js nélkül működik a honlapom egyedül a chat fal nem.
3 ajax szal csak a fontos dolgokat hozatom be (csak a tartalmat és csak ami kell).
Vagyis nem műxik js nélkül. Pont.
az hogy egy divbe be hozza be a dolgokat az kiegészítőnek számít?:D
Attól függ, hogy mik azok a "dolgok". Ha fontos tartalmi elem, akkor nem kiegészítő. Az kiegészítő pl., ha egy webshopban a terméklista mellet (pl. jobb sáv) megjeleníted (ajax) a kosár pillanatnyi tartalmát (minden hozzáadás/kidobás után) és a terméklista alatt is van egy link, hogy "rendelés leadása", amire új oldalon, ajax nélkül jelenik meg kvázi ugyanaz a kosár és funkciók, amik ajax/js meglétekor a jobb sávban. Tehát, ha nincs ajax/js, akkor is tud a Júzer vásárolni, legfeljebb kicsit kényelmetlenebb. Itt fontos az is, hogy a "kosárba" gombot lekezeld HTTP-n is, js-ből pedig tiltsd le (ha van js). Remélem, így már érthető.
De egyszerűbb példa az űrlapellenőrzés: szerveroldalon (PHP) mindenképp kell, míg - ha be van kapcsolva js - kliensoldalon Júzernek kényelmesebb, mert nem kell újratölteni az oldalt.

hát pl fal amit csináltam pici jsel azt biztos nem fog js tiltással menni vagy is ink a smilek beszúrása meg 5 másodperces fríssités.
ellosszőrrrtanujjjmámegmagyartotmegghejjjlyessírnimerezigynaggyonnemjoam!
Hát én tudok magyarul, de ez a mondat még csak nem is töri... :)
Kértem már az írásképedet is javítani. Nem fogom elolvasni, ha erre is lusta vagy. A helyesírásoddal meg honlapszerkesztést sem szabadna vállalnod.
15

Off

Pepita · 2012. Aug. 1. (Sze), 23.56
A tisztelt fórumtársaimat sem értem, hogy beleesnek mindig az ilyen csapdákba, és...
Néha én sem értem, pedig itt és most úgy érzem: rám is igaz. "Mentségemre szóljon": nem túl jó a névmemóriám, és igyekszem is nem pikkelni senkire. Utóbbit azért, mert ha most van is valakinek (ugye mindenkinek van) vmi rossz tulajdonsága, hátha javul -, mert az ember holtáig változik (minimum).

kriszrap szerintem most is úgy érzi, mindent tud, "csak az a k.. gép/honlap nem akarja!". Egyébként - normális esetben - minél többet tudsz, annál kevésbé érzed azt, hogy ez "a minden" és annál több további tanulnivalót találsz. Legalábbis szerintem.

(A Mindig Kezdő)
17

na átnéztem mindent újra

kriszrap · 2012. Aug. 2. (Cs), 01.27
na átnéztem mindent újra :)
egyedül az nem mükszik jsnélkül a smiley beszúró textareba.
csak ez.
de miért fontos ez hogy js nélkül menjen???

(nem otthon vagyok és ezért most ie-n nincs helyesírás javító)
18

Nem kell

Pepita · 2012. Aug. 2. (Cs), 01.50
most ie-n nincs helyesírás javító
Nem is kell. Meg kell találni a SHIFT és az írásjeleket (vessző, pont, stb) tartalmazó billentyűket. A kérdőjel "kézremegését" megszüntetheted billentyűzetcserével, vagy megfelelő protézissel. Helyesen kell tagolni a mondanivalódat. Egyik szoftver sem fog tudni helyetted magyarul.

A smiley nem fontos - szerintem - js nélkül (és azzal sem). Szerintem minden szükséges infót megkaptál a problémád megoldásához, ha mégsem, tegyél fel értelmes kérdést és megpróbálunk válaszolni.
19

rendben ezt a topikot

kriszrap · 2012. Aug. 2. (Cs), 11.59
rendben ezt a topikot befejeztem :)

szerk.: bocs hogy megint írok csak most jutott eszembe
szaky írta:
Minimum az, hogy nem minden függvénynél copypastoljuk be a teljes xmlhttp létrehozását, hanem külön megírjuk egy eljárásban.

hogy lehet ezt? kiváncsi vagyok erre.
20

Ismétlés a tudás anyja

Hidvégi Gábor · 2012. Aug. 2. (Cs), 12.03
kriszrap, már nem először bizonyítod be két pillanat alatt, hogy fogalmad sincs, hogyan működik a web és a böngészők. Mi lenne, ha az alapoktól kezdve végigmennél a szamárlétrán, és ha már úgy érzed, mindent tudsz, akkor kezdesz csak AJAX-os fejlesztésekbe?
Vagy pedig a rapper maradjon a kaptafánál.
22

Ismétlés a tudás anyja 2

Pepita · 2012. Aug. 3. (P), 00.06
És még új témaként is felmerült újra...
21

függvény

Poetro · 2012. Aug. 2. (Cs), 14.23
Mondjuk írsz egy függvényt, ami paraméterben megkapja az url-t és a visszatérés esetén meghívandó függvényt.
23

Nem azt csináltam amit poetro

kriszrap · 2012. Aug. 3. (P), 15.28
Nem azt csináltam amit poetro ajánlott de ugyan azt a célt szolgálja szerintem.

gombok:

<li><button type="button" onclick="gomb(1)">főoldal</button></li> 
<li><button type="button" onclick="gomb(2)">chat</button></li>

function gomb(gomb_szam)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("tartalom").innerHTML=xmlhttp.responseText;
    }else{  
    document.getElementById("tartalom").innerHTML = '<img src="ajax-load.gif" height="100" weight="100">';  
    }  
  }
 if(gomb_szam == 1)
  {
   xmlhttp.open("GET","home2.php",true);
   xmlhttp.send();
  }
 if(gomb_szam == 2)
 {
   xmlhttp.open("GET","fal.php",true);
   xmlhttp.send();
 }
}
ez is jó megoldás ?:)
24

Néha próbáld ki

Pepita · 2012. Aug. 3. (P), 23.57
Néha próbáld ki amit csinálsz.
Ezt mondjuk kikapcsolt js mellett (is) ajánlom. Akkor mit kapsz a gombok nyomkodására? (Itt ugye van egy "főoldal" gomb is...)
25

jól tátod van egy főoldal

kriszrap · 2012. Aug. 4. (Szo), 21.32
jól tátod van egy főoldal gomb:)
js tiltásánál nem csinál semmitse:(
szerk.:
hogy lehetne ezt megoldani hogy js tiltással is menjen??
26

linkek

Poetro · 2012. Aug. 4. (Szo), 21.36
Linkeket csinálsz button helyett, és azoknak JavaScripttel megtiltod az alapértelmezett működését.
27

addig rendben hogy linket

kriszrap · 2012. Aug. 4. (Szo), 21.44
addig rendben hogy linket csinálok a buttonnak de én ajaxal hívatom be a honlapot a hozz pedig js kell. nem?
28

Felfogás

Pepita · 2012. Aug. 5. (V), 00.00
Ne haragudj, de ha valami (pl. egészségi) hátrányban szenved a felfogásod az átlagemberhez képest, akkor inkább írd ide, hogy tudjunk hozzá igazodni (már ha tudunk).

Többen is leírták(tuk), hogy először megcsinálod az egész honlapot úgy, hogy js nélkül működjön. Itt szó sincs még ajax-ról. Esetleg ebből a megoldásból még "kimarad" a chat. De más semmi.

Szóval a szerveroldalon is kétféle tartalomkiszolgálás kell, de ezt is olvashattad már itt.

Még egyszer nagybetű és írásjelek nélkül írsz, én nem válaszolok. Akkor sem, ha így felbosszantasz az értetlenségeddel. Végeredményben én azt javaslom: felejtsd el a js-t, ajax-ot egyelőre (ezzel együtt a chat-et is), csinálj egy tényleg rendes oldalt. Ahogy elnézlek, ezzel is épp eléggé meg fogsz küzdeni...
29

Kabaré

Hidvégi Gábor · 2012. Aug. 5. (V), 06.16
Nemrég olvastam valahol, hogy az egyik fesztiválra keresnek standup komédiásokat, indulhatnátok ott.
30

Kik?

Pepita · 2012. Aug. 6. (H), 00.23
A többes számban azokra is gondolsz, akik próbáljuk eloszlatni a ködöt? Helyenként én is elmosolyodtam, de hogy ez eladható lenne - nem tudom.
Pár hete a Drupal.hu-n láttam egy fórumtémát, ahol a kérdező még hisztizett is (épphogy nem anyázott), mégis sokan és sokat és szelíden válaszoltak neki, mígnem egy moderátor zárta a témát, mert rég kint volt már a megoldás. Ott én - pozitív értelemben - kiakadtam a válaszadók türelmén.
31

Na lassan 3 napja kesz vagyok

kriszrap · 2012. Aug. 12. (V), 01.37
Na lassan 3 napja kesz vagyok a dologgal sikerult. Vissza terve nehez felfogas megjegyzesre. Azert nem ertettem js tiltast mert meg volt nekem az egesz honlap html php css dolgokkal csak azt akartam meg irni egy ajax behivot vagy is katt ajax behoza pl fomenu tartalmat es kesz . Koszonom a faradozasukat es persze a sok turelmuket
32

o_O

hunkris · 2012. Aug. 12. (V), 11.24
Attól, hogy van egy weblapod, még nem biztos, hogy működni fog, ha js-sel, vagy AJAX-szal hívod be a tartalmat! Ugyanis ha tiltva van a js, akkor nem fog menni, és a weblapod egy raklap ürülék lesz...

Miért is? Talán mert az AJAX egy rövidítés, és az igazi neve Asynchronous JavaScript and XML, magyarul aszinkron js és xml...

Ajánlom azt is, hogy tanulj meg helyesen írni az IE helyesírás-ellenőrzője nélkül. Ellenkező esetben késő lesz, egy, de egyetlenegy valamire való (nem csak informatikus) cég sem vesz fel olyan embert, aki nem tud helyesen írni.