Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz Jim-Y #777 üzenetére

    Mindenesetre nem ártana ellátni a kulcsszavakhoz tartozó wrappereket (span és társai) valamilyen class-szal, hogy legyen már valami egyedi jelzésük, minél jobban bővül a kódod, annál nehezebben lesz karbantartható és átlátható.
    Azt még mindig nem írtad le, hogy a *-hoz miért is kellett odarakni a többitől teljesen eltérő kezelést (miért is volt szükség arra a végtelen ciklusra :DDD).

    Szerk.: még egy jótanács, vagy inkább kódolási praktika.
    Van a kódodnak ez a része (most ezt Karma legutóbbi szerkesztéséből vettem még):
    if ($("#activity_data_log input").val() !== "") {
    var spantext = "'" + $("#activity_data_log input").val() + "'";
    $("#activity_data_log input").val("");
    $("<span></span>").text(spantext).appendTo("#query_field_td");
    }

    Itt mint jól látható, az $("#activity_data_log input") selector nagyon sokszor előfordul itt a kódban.
    Gondolj bele, milyen teljesítményromlással jár ez, hogy a jQuery-nek tulajdonképpen 5 sorból 3-ban is végig kell rohangásznia a DOM-on, keresgélve az ilyen selectornak megfelelő elemet (nem mondom, hogy ez hű de lassú, sőt, főleg, hogy egyedi azonosítóval ellátott elemről van szó, de akkor is felesleges overhead).
    Az ilyet el lehet kerülni - és nagyon is érdemes - úgy, hogy eltárolod egy változóba a már megtalált eleme(ke)t, valahogy így (most a $dataLogInput változónevet adtam neki, de tök mindegy):

    $dataLogInput = $("#activity_data_log input");
    if ($dataLogInput.val() !== "") {
    var spantext = "'" + $dataLogInput.val() + "'";
    $dataLogInput.val("");
    $("<span></span>").text(spantext).appendTo("#query_field_td");
    }

    Jobb és könnyebben is módosítható, ha csak egy helyen "drótozod be" az adott selectornak megfelelő elemet.

    [ Szerkesztve ]

    Sk8erPeter

Új hozzászólás Aktív témák