Input multiple – vairāku failu augšupielāde

Šodien bradāju pa dažādām lapām un atkal uzskrēju kādam foršam ierakstam iekš Bolk bloga. Esmu jau vairākkārt atsaucies uz dažādiem viņa rakstiem. Sen neesmu bijis pie viņa blogā, jo adrese ir pamainījusies.

Šoreiz noderīgs ir ieraksts par web formām un konkrēti input lauku ar iespēju izvēlēties uzreiz vairākus failus augšupielādei. Šī iespēja līdz šim bija pieejama caur dažādiem apkārtrisinājumiem, piemēram, izmantojot Flash.

Bet tā kā web formas ir daļa no HTML 5 specifikācijas, kas ir HTML 4 turpinājums, tad web pārlūku izstrādātāji šo tehnoloģiju pakāpeniski ievieš savos pārlūkos, piemēram, sākot ar Firefox 3.6 beta 1 būs pieejama šī iespēja. Attiecīgi vairs nevajadzēs izmantot Flash šādām lietām.

По мотивам предыдущего поста. Чтобы Opera 9+ (а так же 3.5—6.05), Firefox 3.6+, Chrome 3.0.191.0+ и Safari 4.0.1+ позволили выбрать несколько файлов в диалоге загрузки файлов, нужно написать вот такой код:

<form enctype="multipart/form-data" method="post">
   <input type="file" min="1" max="9999" name="file[]" multiple="true" />
   <input type="submit" name="submit" />
</form>

Я указал «file[]» для того, чтобы PHP сразу разложил полученные файлы по массиву $_FILES. К сожалению, запрос от «Оперы» PHP понимает неверно, так как «Опера» шлёт такой запрос в формате multipart/mixed. К счастью, PHP в этом случае положит содержимое файлов одним MIME-куском прямо в $_POST[‘file’][0], а там его уже можно разобрать (надеюсь, директива magic_quotes_gpc у вас отключена).

Saimniecībā noderēs.

48 thoughts on “Input multiple – vairāku failu augšupielāde

  1. Vilx-

    Mazliet smieklīgi šķiet tas, kā notiek šīs lietas ar specifikācijām. Pirmkārt, specifikācija ne tuvu vēl nav pabeigta, bet visi steidz jau kaut ko pusperētu implementēt. Otrkārt, oficiāli viņi cer šo specifikāciju izstrādāt līdz… saņemieties… 2022. gadam! Sviests kaut kāds.

    Atbildēt
  2. dooh

    2022. gadā ir jābūt realizētām divām neatkarīgām pilnīgām html5 implementācijām. html4 10 gadu laikā joprojām pilnībā nav implementēts nevienā pārlūkā.

    Otrkārt – tas ir labi, ka implementē kaut ko pusperētu. Tad kolēģi dzīvē notestēs, kas strādā, kas nē un atbilstoši šo eksperimentu rezultātiem pielāgos specifikāciju. Manuprāt, normāli. Nevēlies eksperimentēt – pagaidi, neviens nespiež.

    Atbildēt
  3. Vilx-

    Redz, šādu “eksperimentētāju” dēļ jau tad mēs beigās arī nonākam pie tā, ka katrs browseris lietas dara pa savam, un nabaga webdeveloperiem ir jāveic četrkāršs darbs, lai uz visiem izskatītos/uzvestos vienādi.

    Manās acīs korekti būtu tā, ka viņi tur sametas kopā, un gadiņa vai divu laikā uzģenerē jaunu specifikāciju, un tad to publicē kā absolūto patiesību. Un tad visi browseri vienlaicīgi ķeras klāt pie jauno lietu izstrādes, un visi tās implementē vienādi. Pēc ~5 gadiem ķeras pie nākamās specifikācijas, kurā jau ņem vērā iepriekšējo kļūdas.

    Atbildēt
  4. M

    Nu par to “saimniecībā noderēs” gan pagaidām nevarētu piekrist.

    Kārtējā pusperētā fīča ko kaut kad atbalstīs pusotrs pārlūks. Ideja protams atkal ir laba, bet man kaut kā šķiet, ka viss kas saistās ar jaunu funkciju ieviešanu pārlūkprogrammās brauc arvien dziļākā purvā. Tie paši apaļie stūri elementiem it kā eksistē jau gadiem, bet kāda no tā ir praktiskā jēga, ja pusei lietotāju tos nerādīs? Ko dod animētie PNG, par ko kādu brīdi visi tā priecājās, ja visiem populārajiem pārlūkiem pat parastu puscaurspīdīgu png bez hakiem nevar iebarot?

    Vēl viena “noderīga” funkcija, kurai tā pat vajadzēs taisīt javascript fallback’u lai tas kaut kā nebūt strādātu uz citiem pārlūkiem, un beigu beigās darbs būs ielikts vairāk kā bez šīs brīnišķās funkcijas.

    Atbildēt
  5. miiliigums

    faileim.lv bija gan flašiskais gan javaskriptiskais aplauds, tikai nezinu pēc kā viņi nosakam kuram dot kuru formu tas pats ir ar imageshack.us nesen nezinu kā tagad……

    problēma ar png caurspīdīgumu ir tikai IE6<un vecākiem

    Atbildēt
  6. dooh

    M
    Tu esi iestrēdzis 5 gadu pagātnē. Pēc tavas loģikas “visi populārākie pārlūki” ir IE6 – tā gluži vienkārši nav patiesība. Pasaulē IE6 ir aptuveni 20% tirgus, Latvijā 12-13%. Ir projekti, kur šie 12% ir svarīgi, citos – ietaupītais izstrādes laiks ir svarīgāks. Klienti skaita naudiņu un gana bieži ietaipītais lats ir būtiskāks par faktu, ka 12% lapa izskatās sliktāk. Joprojām lietojama, taču ne tik skaista kā citiem.

    Vilx-
    Nav tiesa. Tādēļ, ka jaunās funkcijas tā arī tiek ieviestas – kā eksperimentālas. Piemēram, css definīcijas ar -moz vai -webkit prefiksu. Un šīs lietas, laika gaitā kļūstot aizvien nobriedušākām, tiecās uz vienotu sintaksi visos pārlūkos. Tas ir iespējams tādēļ, ka atšķirībā no ieriekšējā piegājiena, eksperimentālās funkcijas ir iespējams mainīt, modificēt, lauzt un citādi aiztikt. Neaiztiekams tas kļūst brīdī, kad pārlūks paziņo “viss, šī ir gala versija” un viss internets ņemās šamo arī lietot. Visi pārlūki šo kļūdu kādreiz ir pieļāvuši – pāragri kaut ko finalizēt, taču pēdējā laikā tas kļūst aizvien mazāk novērojams.

    Tas, ko apraksti, ir mehānisms kā izstrādāja visas HTML specifikācijas pirms 5. versijas – kā redzams, nekas labs no tā nesanāca…

    Cita pozitīva tencende – gandrīz visām jaunajām lietām ir iespējams kāds fallback mehānisms, ja pārlūkā nav iebūvēta kāda funkcionalitāte. Ir rīki, kas uztaisa apaļos stūrus, ja pārlūks pats to nemāk. Video tagā var iekļaut kodu, lai video failu atskaņotu ar flash. Piemēru ir daudz. Tas nozīmē, ka gana bieži ir iespējams paņemt esošo risinājumu un to uzlabot priekš pārlūkiem, kas to prot pielietot.

    No kāda HTML5 FAQ (neatceros, kur un kura):
    Q: When can I start using HTML5?
    A: Now.

    Atbildēt
  7. Vilx-

    +1 M, -1 dooh. mm: WTF?

    Tur jau taisni tā lieta – kāda šķirba no jaunas fīčas, ja man tāpat vēl 10 gadus būs jāraksta 3-kāršs fallback? Kāpēc man vispār izmantot jauno fīču, ja viss tikpat labi strādā vienā fallback variantā, un man nevajag ekstra kaut ko kodēt? Ar to VIDEO vispār ir kruta. Ja es gribu to visu kārtīgi izmantot, tad man vajag savu video ielikt 2 dažādos formātos (jo brīnumbērni nespēja 3 salmus sadalīt un par kodeku novienoties), ielikt EMBED fallbacku un ielikt Flash fallbacku. WTF!? Kur jēga no tā jaunā taga, ja tas 4-kāršo manu darbu? Protams, ka es palikšu pie Flash, jo tas strādā vienmēr, visiem, un pilnīgi identiski.

    Jā, var jau vainot to, ka lietotāji izmanto vecus pārlūkus, kuri neuztur standartus, utml. Taisnība, tā ir daļa problēmas. Interneta sākotnējā attīstība bija nekoordinēta un haotiska, tāpēc esam nonākuši tur, kur šobrīd.

    Bet es vainoju arī W3C, kuri nespēj normālā ātrumā uzcept normālu specifikāciju, kuru noteikt kā Obligātu Standartu. Un ar “normālu specifikāciju” es domāju tādu, kurā nebūtu 1001 viena lieta atstāta katra browsera ziņā, bet gan viss izķidāts līdz pēdējam sīkumam. Lai nebūtu nekādas iespējas 2 browseriem atšķirties uzvedībā. Un ar “normālu ātrumu” es domāju “dažu gadu laikā līdz finālam”, lai visi browseri var vienlaicīgi ķerties klāt viņas implementēšanai, un vienlaicīgi finišēt, kā rezultātā mēs beidzot būtu noveduši visus browserus līdz vienam kopsaucējam.

    Jā, paietu vēl 10 gadi, kamēr vecie browseri izmirtu, kuru laikā tāpat vajadzētu strādāt ar hackiem un workaroundiem. Bet toties pēc tam beidzot būtu sasniegta situācija, kur es varu savas weblapas taisīt pēc standartiem un neuztraukties, kā kurā browserī viņas izskatīsies.

    Bet kā lietas notiek šobrīd, man šķiet, ka es jau sen būšu pensijā, pirms kaut kas tāds notiks!

    Atbildēt
  8. links

    Lasīju jūsu diskusiju un atcerējos kkur sen dzirdētu teicienu: “Ja celtnieki būvētu mājas, kā programmētāji raksta programmas, mums nebūtu kur dzīvot.”

    Atbildēt
  9. CooLynX Raksta autors

    Vilx-, ir tāda lieta kā izstrādātāju vēlme eksperimentēt un meklēt labākus risinājumus kā realizēt nepieciešamās lietas. Palaižot jaunās eksperimentālās lietas uz jaunākajiem pārlūkiem, standartu izstrādātāji var dabā notestēt cik daudz šo fīču izmanto un vai ir vērts pie tās vēl ilgāk kavēties, lai detalizētāk atslīpētu.

    Starp citu, CSS 2.1, kas šobrīd tikai ir Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification, kas ir W3C Candidate Recommendation 08 September 2009. Pie tam lielākā daļa lapu jau sen kā izmanto CSS 2.1 fīčas. 🙂

    Atbildēt
  10. CooLynX Raksta autors

    links, tas bija viens labs krievu humora gabals. Šķiet, ka es arī kaut kad biju to iemetis, bet tas bija ļoooti sen un vecajā podā. 🙂

    Atbildēt
  11. dooh

    Vilx-
    Tu sagaidi, lai standartu organizācijas nodarbotos ar inovēšanu. To viņas NEDRĪKST darīt. Standartu organizācijām ir jāstandartizē industrijā lietotās tehnoloģijas. Nevis jāizgudro jaunas, bet jānofiksē esošās. Šis process nevar būt vienas kompānijas diktāts, kas pasaka “es izdomāju šādu štellīti, pasludinu par standartu, āmen”. Katra kompānija kaut ko izgudro, ievieš un eksperimentē, taču par standartu kļūst tikai tās lietas, par kurām spēj savstarpēji visas iesaistītās kompānijas.

    Iemesls ir attīstība. 2-3 gadus liksi flash fallback – pēc tam vairs neliksi, jo neviens to vairs neizmantos. Tas IR nepieciešams pārejas posmam. Piemēram, ilgu laiku izstrādātāji lika fallback, lai uz IE5 iegūtu Array.push() metodi – tagad tas vairs nav nepieciešams, jo šis pārlūks vairs nav aktuāls. Tāpat arī ar apaļajiem stūrīšiem un png hakiem – tagad liekam risinājumus, lai tas darbotos uz IE6, pēc 2-3 gadiem vairs neliksim, jo IE6 vairs nebūs aktuāls. Un ja tev būtu jāizvēlas –
    1. variants. Ir lapa ar video tagu, src uz (vienu) failu. Apmeklētājs ar out-of-the-box pārlūku. Viss strādā.
    vai
    2. variants. Jāsameklē/jāuzprogrammē flash playeris. Tas jāiemāna lapā (swfobject, embed). Apmeklētājam ir jābūt gan pārlūkam, gan papildu flash pluginam.
    Kurš izklausās pēc “mazāk darba”? Ja būtu viss jādara no nulles.

    Tev nav jālec vilcienā tagad, neviens jau nespiež. Taču agrāk vai vēlāk būsi spiests to darīt. Jā, tā var ietaupīt savu laiku. Droši vari pagaidīt, kamēr video kodeki nobriest, uzņēmumi/internets ir izkarojuši un ir uzvarējis viens kodeks. Taču pastāv risks, ka vari aizkavēties attīstībā un kļūt par dinozauru. Paša izvēle.

    Flash nestrādā visiem (iPhone?) un nestrādā vienādi (Linux?). Ja tas tev nav aktuāli – nekādu problēmu, lieto to, kas darbojas. Taču man ir bijuši projekti, kur 25-30% apmeklējums ir no iPhone. Un flasham ir lielas veiktspējas problēmas ar HD video – video tagā pārlūks var lietot hardware akselerāciju, flashā nevar. Es atkārtošu – es neapgalvoju, ka visiem ir jāskrien, jālec un visas video lietas tagad jāpārraksta, lai lietotu video tagu. Nebūt nē. Taču ir gana biežas situācijas, kad tas ir nepieciešams. Un ar laiku, pamazām – jā, es ticu, ka tas kļūs par populārāko video piegādes mehānismu. Par standartu :).

    Manuprāt, tas pat ir labi, ka pārlūki drīkst atšķirties savā uzvedībā. Tas atstāj vietu eksperimentiem un inovācijai. Obligāts Standarts nav interneta būtība – interneta būtība ir haoss, pašplūsma, knowledge of the masses. Internets, t.i. mēs izstrādātāji, kopā būsim gudrāki par jebkuru vienu uzņēmumu vai stardartu organizāciju (Obligātā Standarta autoru) – tava pieeja pilnīgi garantē, ka kaut kas nebūs kā vajag. Standartam ir jābūt Absolūtajam Minimumam – lietas, par kurām visi izstrādātāji ir vienojušies, lieto praksē un nav nekādu nesaskaņu. Lietām, kas ir strīdīgas, nav vietas standartā. Tieši šī iemesla dēļ no HTML5 tika izņemts nepieciešamais video kodeks – sākotnēji bija ierakstīs, ka obligāti jālieto Ogg Vorbis, taču Apple paziņoja, ka to nelietos, jo H264 ir labāks. Ņem vērā, ka šeit nav pareizas un nepareizas atbildes – ir tikai vienlīdzīgi viedokļi. Katram no tiem ir prikšrocības un trūkumi. Tas, ko lietos vairākums, tas arī būs standarts. Un visticamāk, vairākums izvēlēsies labāko. Nav garantijas, taču tas ir labāk par nekontrolētu diktatūru.

    Atbildēt
  12. dooh

    Lapas vienmēr būs jātestē populārākajos pārlūkos. Tas tā ir un būs vienmēr – tas pat nav tikai pārlūkiem raksturīgs, tas tā ir visam. Vienmēr būs kaut kādas jaunas vai salīdzinoši jaunas tehnoloģijas, kuras nebūs pietiekami nobriedušas, lai visur strādātu korekti/vienādi.

    Box modelis jaunajiem pārlūkiem, manuprāt, jau tagad ir ļoti labs. Ja lapu kodē uz FF, tad uz webkit pārlūkiem – Chrome un Safari – 99% nav pilnīgi nekādu problēmu. Arī uz IE8 parasti viss ir ok. Taču līdzko sāk spiest laukā pēdējo suliņu – tur jau ir jautrāk.

    Atbildēt
  13. Vilx-

    Tur jau tā lieta, ka es negribu to, lai man lapas vajadzētu testēt populārākajos pārlūkos. Es ceru uz tādu utopisku lietu, ka es uzrakstīšu savu lapu vienā pārlūkā, un viņa strādās visās. Tās ir vislielākās zobu sāpes web izstrādē – browseru atšķirības. Es nemaz negribu rēķināt, kādi zaudējumi no tā rodas kompānijām, kuras izstrādā weblapas.

    IMHO tāda arī ir standartu jēga – lai katrs netaisītu savus eksperimentus, bet gan visi pieturētos pie vienas lietas. Un nav svarīgi vai kodeks ir tāds, vai šitāds, un vai ir tādi tagi, vai šitādi. Galvenais – lai visiem vienādi, un visiem uzvedas vienādi. Tieši šis haoss ir tas, ar ko ir jācīnās, tas nav jāatbalsta!

    Atbildēt
  14. Delfins

    mans nepatīk ši te lietiņa.

    šim te ir vairāki ierobežojumi
    – max post data (ja izvēlos simtiem bilžuku)
    – nerāda progress bāru uz katru failu
    – jāgaida kad pabeigsies ielāde, pie pareiza upload-skripta ieladetos var uzreiz lietot, kamer parējie 100 kačājas.

    resp. kamer nebus normals HTML elements, tikmer tas bus nelietojams. Lidzigi ka tas bija ar “skrolejošo tekstu”.. tapat visi izmanto musdienas JS, apies ari iebuveto kontroli, jo nedod nekadas labas kustomizacijas.

    turklat si te lietinja nav tik populara – iznjemums ir bildes.

    Atbildēt
  15. CooLynX Raksta autors

    Vilx-, es noteikti nepateikšu neko jaunu, bet arī man bija tādi paši utopiskie sapņi par to, ka būs kādreiz komunisms webā ar vienotiem standartiem, toreiz būs Internet Explorer, kuru lietos visa pasaule un nieka Netscape ar saviem 4-5% nomirs.

    Šodien sāpe ir Internet Explorer un daļa grib Firefox, citi Chrome, bet vēl daži Operu. Nu nav un nekad nebūs viena vienīgā un pareizā pārlūka, tieši tāpat kā neatbalstīs to standartu tik pilnīgi un 100%. To pierādīja arī XHTML izgāšanās. 🙂

    Atbildēt
  16. dooh

    Kompānijām, kas izstrādā, zaudējumi nerodas. Klientiem rodas izdevumi :).

    Un es tev nepiekritīšu – nav galvenais, lai visiem būtu vienādi. Galvenais, lai būtu pēc iespējas labāka un bagātīgāka tehnoloģija.

    Lai mūsu mērķis ir tas pats – būt pēc iespējas slinkākam un pēc iespējas ātrāk tikt pie rezultāta – viedokļi, kā to sasniegt ir atšķirīgi. Es uzskatu, ka to var panākt ar pēc iespējas labāku tehnoloģiju – tādu, kas man ļauj izdarīt pēc iespējas daudz ar pēc iespējas mazāk kodu. Piemērs – css selektori. Lietot “>”, “:not()”, “:nth-child()” utt ir ārkārtīgi ērti un tas taupa laiku. Tad laiks tiek patērēts, lai to pārbūvētu tā, lai tas darbotos uz veciem pārlūkiem. Manuprāt, iltermiņā izstrādes laiks pie formulas “jaunās lietas + testēšana” < “vecās lietas”. Īstermiņa risinājums “jaunās lietas + fallback” ir degviela, kas iznīdē vecos pārlūkus un motivē jauno izplatību.

    Varu vēl pieminēt – lai arī starp Gecko un Webkit layout dzinējiem un TraceMonkey (Mozilla), V8 (Google) un SquirrelFish (Apple) javascript dzinējiem ir ārkārtīgi būtiskas atšķirības, praktiski nekad nav cross-browser problēmas starp šiem pārlūkiem. Testēšanai starp šiem pārlūkiem aiziet ārkārtīgi maz laika – visu laiku noēd un problēmas rada IE. IE (arī 8 versija) ir tas kakātājs dārziņā, kas visu sačakarē. Ja tas ir tavs izejas pārlūks (uz kura programmē vispirms), tad vispār ir vakars uz ezera. Problēmas risinājums ir nevis censties ierobežot visus skrējējus un eksperimentētājus, bet izspiest no tirgus visus draņķīgos pārlūkus. Ne jau eksperimenti rada lielākās problēmas – to dara stagnācija. Un IE8 bija vecs pārlūks jau vēl pirms tas iznāca…

    Atbildēt
  17. dieninieks

    problēmas rada ie un opera js dzinēji, sevišķi operas js smird – daudz gļuku, ko viņi arī regulāri labo, labāk būtu adaptējuši kādu no esošajiem js dziņiem kaut vai to pašu v8 or squirrelfish..

    Atbildēt
  18. Janis

    standartu tad varbūt izstrādās. varbūt arī ieviesīs jaunākajos pārlūkos. tomēr kā par spīti vesela kaudze lietotāju turpinās lietot vecos pārlūkus un varēsiet viņiem iepūst ar saviem jauninājumiem un jaunajiem standartiem

    Atbildēt
  19. MIGs

    Jā, bet piemēram JPG es varu atvērt uz dajebkā un tas izskatās vienādi. Tas arī ir standarts un tā tam ir jābūt !
    Bet visur kur pie standartu implementēšanas ir M$ tiek sataisīta huiņa. Vai tie ir dokumenti, vai webs.

    Standarteim būtu jābūt tādiem, ka rakstot pārlūku tu sausi sekojot standarteim visu būtu izdarijis pareizi. Lai būtu definētas noklusētās vērtības utt. A to mūsdienaš vienam pārlūkam šis, otram tas.

    Un vispār gribētu redzēt webu vairāk uz vektoriem balstītu. Jo nu lai vai kā cenšās, bet mūžīgais čakar ar monitoru malu atiečibu, monitoru izmēriem utt paliek. Ir labāki risinājumi, ir sliktāki, bet pati pieeja jau sux by default.

    Atbildēt
  20. Shadowbird

    JPG ir bilde, kas nav jāinterpretē, to nekādi neietekmē un tā nekādi nesaistās ar tādām lietām kā loga malas, teksta pārnešana pa rindām utt., par interaktivitāti nemaz nerunājot. Principā tu salīdzini ķieģeli ar kosmosa staciju.

    Vektori neglābs no ekrānu un logu izmēru dažādības, vai varbūt tu gribi teikt, ka ar vektorgrafiku var uzzīmēt bildi, kas bez staipīšanās un skrollēšanas saiet jebkura izmēra logā? Ne jau vektorus tur vajag, bet vienkārši vairāk (plašākas) relatīvo izmēru iespējas, lai objektus var stilot, atsaucoties uz citiem objektiem. Piemēram, laukumam A piešķirt 100 px malu, un citam laukumam B piešķirt 2.5x laukuma A malu. Tā kā nu jau visas HTML birkas atbalsta “id” parametru, tur pat nevajadzētu nekādu riteni otrreiz izgudrot, tikai ieviest mehānismu, ar kuru atsuakties uz citu elementu CSS.

    Atbildēt
  21. Knaģis

    Shadowbird, IE agrāk bija tāds expression() iekš CSS, kas to darīja.

    Bet diskusijā par standartiem es pilnībā nostājos Vilx- pusē – jauno fīču implementēšana nedod pilnīgi neko, ja paralēli tām ir jātaisa work-aroundi un fallbacki.

    box-sizing ir viens milzīgs caurums, ar kuru saskāros. It kā jauna fīča, ko man pat bieži vajadzētu, bet tas, ka tikai daži browseri to implementē, nedod pilnīgi neko. līdz ar to fīču var izmest miskastē vēl uz pāris gadiem.

    Tas, kas ir vajadzīgs – sanāk kopā IE, FF, Chrome, Opera utt. izstrādātāji un uzraksta to specifikāciju. Kad specifikācijas būs uzrakstītas, tad varēs taisīt IE10, FF5 utt. pēc šīs specifikācijas, uztaisīt, piemēram, ko līdzīgu IE Compatibility mode priekš vecajām lapām un sākt jaunu lapu.

    Ja nebūs kārtīgs restart, tad šī steberēšana uz priekšu rezultātu tiešām dos tikai pēc 12 gadiem.

    Atbildēt
  22. Vilx-

    Ar tiem expression tur tik skaisti vis nebija. Pirmkārt tas bija IE-only, otrkārt tas reāli iebremzēja, jo IE JS jau tā ir lēns, bet šitie expressioni tika pārrēķināti uz praktiski katru eventu. Pakustini peli par 1px – visi expressioni pārrēķinās. Un reizēm tāpat esot situācijas, kad nepārrēķinās tā, kā vajadzētu (pats gan neesmu saskāries). Ideja itkā saknē cēla, bet praktiski neizdevusies.

    Atbildēt
  23. dooh

    MIGs
    Vektoru grafikai ir svg – ņem un lieto. Kaut kādā līmenī, šķiet, darbojās arī uz IE. Vai tas ir pareizākais virziens – nezinu, taču pieejama tāda lieta ir. Vektoru grafikai liels mīnuss ir veiktspēja – Adobe Illustratora .ai 15mb failu tu pagaidīsi 2 minūtes, kamēr tas atverās, un piecietīsi, ka pie pakustināšanas aparāts pāris sekundes padomā – web labai noteikti ne. Rotācijas, resaizošanas un antialiācija (kas vektoru gadījumā ir obligāta) paņem daudz cpu.

    Par to, ka MS visur taisa huiņu – nevaru piekrist. Microsoft ir ārkārtīgi liela korporācija un dažkārt viņiem izdodās kaut ko nesačakarēt. Divi nelieli piemēri – Microsoft ir XmlHttpRequest autori. Tāpat arī izgudroja innerHTML DOM elementiem. Tā kā tīri no inovēšanas viedokļa potenciāls ir ok. Parasti viss tiek sačakarēts brīdī, kad pasākumā iesaistās menedžeri, juristi un citi liekēži. Tā kā fakts, ka MS piedalās specenes izstrādē mani absolūti nesatrauc – tur ir gana spēcīgi ļaudis no koderu puses un nav liels tiešas peļņas potenciāls (proprietāras tehnoloģijas specenē iekļaut nevar), kas liktu iesaistīties juristu varzai.

    Knaģis
    Pašlaik aptuveni tā arī notiek. Ar āķi – speceni pasludinās par gatavu tikai tad, kad būs gatavi IE10, FF5 utt. Jo nav jēgas uzrakstīt speceni, kuru neviens nelieto. Varu atkārtot vēlreiz – visas iepriekšējās html specenes ir rakstītas šādā manierē “uzrakstu, pabeidzu, pasaku pārlūku ražotājiem, lai implementē” un NEVIENA no tām nav pilnībā implementētas. Neviena. Tas nozīmē, ka ne jau pārlūku ražotāji ir lohi, bet kaut kas procesā anv riktīgi. Pašreizējais process (2 implementāciju noteikums) garantē, ka rezultātā tiek iegūta absolūti 100% stabila visur atbalstīta bezčakara specene, taču – pašlaik nevar prognozēt, kas tajā būs un kas nebūs iekļauts.

    Viens no plusiem šādai pieejai – ir projekti, kuros jaunās fīčas var sākt izmantot jau ātrāk. Katrai lapai apmeklējums ir ļoti dažāds. Vienai IE6 ir 70%, citai 3%. Ja konkrētās lapas apmeklētājiem 99% ir pieejama vajadzīgā funkcionalitāte – es varu to lietot. Un tas ir rezulāts šodien nevis pēc 12 gadiem. Pārzināt, kuras lietas ir nobriedušas un kuras ir jēlas vēl pirms tiek paziņots “viss, gatavs, pabeigts” nav vienkārši, taču vismaz es to uzskatu par savu darba pienākumu. Man ir jāpārzina situācija industrijā – kādi ir pārlūki, ko tie spēj, kādas funkcijas katram ir pieejamas, cik tās ir stabilas ilgtermiņa projektiem, ko var sagaidīt tuvākā un tālākā nākotnē, kā virzās specifikāciju izstrāde utt. Tikai tad var katram projektam izvēlēties precīzāko pieeju, lai par maksimāli mazām naudām sasniegtu maksimāli labu rezultātu.

    Bet nu es saprotu, ka tu un Vilx- dzīvojas Microsofta IE pasaulē. Jums tiešām šī specene labumu dos tikai pēc 12 gadiem. Taču tā nav specenes vaina, tā ir Microsoft vaina. Ja Mozilla nebūtu sākusi taisīt te bardaku ar savu pārlūku, tad Google un Apple varbūt nebūtu tam pievienojušies un mēs visi vēl laimīgi sēdētu uz IE6.

    Atbildēt
  24. Vilx-

    Mēs dzīvojam pasaulē, kuru kopistiski ir sačakarējuši visi browseri, izvēloties nesekot vienam standartam, bet implementējot katrs pa savam. W3C uzbrauciens ir tāpēc, ka viņiem vajadzētu būt tiem, kas ievieš kārtību, bet tā vietā viņi nogaida un saka – “nu, redzēs, ko visi tur sadomās, tad nodokumentēsim kopsaucēju”.

    Atbildēt
  25. dooh

    Vilx-
    Kādēļ, tavuprāt, daži specifikācijas izstrādātāji ir gudrāki par visu pārējo pasauli?

    Bet vairāk par tēmu – vai tu esi pats izlasījis specifikācijas, par kurām diskutē? Tās ir, pirmkārt, pilnas ar pārprotamām, brīvā tekstā sarakstītām lietām. Nevis loģikas diktēti nepārprotami “ja A, tad B”, bet gan vairāk uz “ja A, tad iespējams B, C un D, bet noteikti ne E, izņemot kad A un Z, tad vienmēr E un D, bet B un C saplūst par vienu veselumu un rada mazuļus” pusi. Un, otrkārt, tajās bieži parādās kas līdzīgs šim:

    “How paragraphs are rendered visually depends on the user agent.” – HTML 4.01, paragrāfs 9.3.5

    Secinājums – specifikācija ne tikai nenosaka kā ko attēlot, bet ir elementi, kurus tā ĪPAŠI atļauj un pat paredz, ka tie izskatīsies dažādi.

    Ņemot vērā šos abus faktus – no šādas specifikācijas:
    – nav iespējams iegūt divas neatkarīgas, taču 100% identiskas implementācijas,
    – ir fragmenti, kuru implementācija nav iespējama vispār,
    – ir fragmenti, kuru implementēšanai nav nekāda praktiska pamatojuma.

    Atbildēt
  26. Vilx-

    Dooh – daži specifikācijas izstrādātāji nav gudrāki par visu pasauli. Viņi ir tieši tikpat gudri, cik visi citi. Bet ir nepieciešama kāda centrālā autoritāte, kas turētu grožus. Viena!

    Un, jā, mani tracina šie teikumi HTML specifikācijā, kur pieminēts “depends on the user agent”. Tādi nedrīkst būt. Tos visus vajadzētu izņemt un aizstāt ar konkrētiem, specifiskiem algoritmiem/noteikumiem. Tas pats attiecas uz “ja A, tad iespējams B, C un D, bet noteikti ne E, izņemot kad A un Z, tad vienmēr E un D, bet B un C saplūst par vienu veselumu un rada mazuļus”. Nē! “Ja A tad B” un viss.

    Atbildēt
  27. dooh

    Vilx-
    We agree to disagree. Manuprāt:
    – Nevienam nekādus grožus turēt nevajag. Pat nedrīkst. Tavs citāds no laacz.lv (nedaudz citā kontekstā, bet tomēr saistītā tēmā): “[..] Kā sacīt saka – “power corrupts, absolute power corrupts absolutely” [..]”.
    – vieta elpošanai (kam ir paredzēta “depends on the user agent” piebilde) veicina inovācijas. Web lapa nav bilde, kam visur jāizskatās vienādai – tai ir jāfunkcionē. Un jāfunkcionē dažādos kontekstos – zinot, cik slinki ir izstrādātāji šādu detaļu ievērošanai, ir labi, ka par noteiktām lietojamības lietām parūpējas pārlūks un neļauj izstrādātājam to saplēst.

    Vari palasīt http://radar.oreilly.com/2009/11/the-war-for-the-web.html – tur tiek apspriestas šīs divas dažādās pieejas – centralizētā (“One Ring to Rule Them All”) un decentralizētā (“Small Pieces Loosely Joined”). Centralizētā (“uzspiež” līmenī, nevis “regulē” līmenī) interneta standartu jomā pa lielam ir izgāzusies. Internets to vienkārši nepieņem. Pārlūku ražotāji to nepieņem. Lapu autori to nepieņem. Un pamatoti – pārfrāzējot manu iepriekšējo jautājumu – kolektīvais zināšanu kopums šiem cilvēkiem ir n-kārtas lielāks par to, kāds ir specifikācijas autoru rīcībā. Tieši tādēļ Ian Hickson (HTML5 redaktors) izmanto šo faktu – un strīdīgos jautājumu ļauj atrisināt atklātā beznoteikumu interneta death-mačā. Pašlaik lielākā kauja – video kodeki. Taču tā nebūs mūžīga. Agrāk vai vēlāk būs uzvarētājs. Jo developeru vairākums nekodēs savus video 2 formātos – izvēlēsies vienu. Eksperimentētāji jā, taču produkcijas līmeņa ierindas koderi – nop. Par daudz darba.

    Atbildēt
  28. Knaģis

    dooh,
    Tavs komentārs “Web lapa nav bilde, kam visur jāizskatās vienādai – tai ir jāfunkcionē.” kaut kā neiet kopā ar visu mūžīgajiem bļāvieniem par to, ka IE sux, jo kaut ko neattēlo korekti. Tur jau tā problēma, ka community tagad ir pieņēmis, ka visiem pārlūkiem ir jāseko standartiem, pieņēmuši, ka funkcijas X implementācija pārlūkā Y ir pareiza un visiem citiem pārmet to, ka tie kaut ko neatbalsta.

    Atbildēt
  29. Vilx-

    Dooh – par varu, jā, bet šajā gadījumā šī vara būs dota pār vienu nelielu pasaules daļiņu – HTML specifikāciju. Ar to daudz neko neietekmēsi. Atšķirībā no Googles, kura zin visu par visiem. Tā nav tā pati lieta. Otra galējība (kad nevienam nav vara ne pār ko) arī nav laba – tad ir haoss un anarhija. Vispār, tā arī šobrīd webā ir. 😛

    Un, nē, weblapa primāri IR bilde, un vienādais izskats (un uzvedība arī ietekmē izskatu, tāpēc ir tam pakārtota) ir tas, uz ko vajadzētu tiekties. Ja dižais Ians ir pieņēmis to, ka HTML ideja par centralizēto pieeju ir izgāzusies, kāpēc viņš nevar arī pieņemt ideju par to, ka semantiskais HTML ir izgāzies? HTML praktiski neviens neizmanto dokumenta semantikas/uzvedības aprakstam! Tas ir de-facto layouta apraksts; veids, kā specificēt “bildi”. Un tikai tā arī to izmanto, izņemot, protams, dažus puritāņus, kuri skaļi brēc par to, ka vajadzētu visiem taisīt lietas semantiski.

    Atbildēt
  30. dooh

    Knaģis
    Vilx- mani ievilka netēmā. “Izskatīties dažādi” un “sekot standartiem” nav viens un tas pats un tās nav savstarpēji izslēdzošas lietas. Redzamākais piemērs – failu ievades lauks. Uz Safari/Mac šis lauks izskatās pavisam citādi kā uz Win – tur nav ierastā kastīte ar tekstu no kuras pa labi ir “browse” poga. Un joprojām – tas ir atbilstoši standartiem. Safari ļauj resaizot textareas out-of-the-box, tā ir iebūvētā fīča. IE virs attēliem rāda faila saglabāšanas un vēl citas ikoniņas. Un tas viss ir labi un jauki – katrs pārlūks piedāvā kaut ko ekstra, kaut ko papildus, lai labāk iepatiktos lietotājiem, lai konkurētu.

    Vilx-
    Nu nu. Veidojot dažādus mašupus, kur ir iesaistīti 5 dažādi portāli/servisa sniedzēji, semantikai tomēr ir nozīme. Jā, vizītkartes tipa izkārtnei tas nav aktuāli, taču servisiem, kas integrējas visur un vienmēr – ir. Bet semantika ir cits temats, tagad to neaiztikšu. Tikai neliela piezīme – veids kā nonāca līdz jaunajiem html tagiem – tika apstaigāts viss internets un salistētas populārākās, izstrādātāju lietotās css klases. Kaut kāds pamatojums tātad tur ir. Cik tas pamatots un lietderīgs, neņemšos spriest. Man pašam pietiek ar esošajiem tagiem un jaunus neprasās, bet nu katram ir tiesības izvēlēties.

    Bet diskutējot par to, ka lapa ir bilde. Cik dažādus pārlūkus, operētājsistēmas un ierīces tu ikdienā lieto? WinXP + IE8? Tā nav visa pasaule. Un katra vide (pārlūks, os, ierīce), prasa savas korekcijas, lai lapu padarītu LIETOJAMĀKU šai konkrētajai situācijai. Piemēram, čekbokšus liek katra OS pa savam. Un ir situācijas, kad tas ir ārkārtīgi noderīgi. Citreiz – neatsverami. Atkals piesaukšu neganto aifouni – paskaties kā viņam strādā drop-down izvēlnes. Pavisam citādi ka uz desktop pārlūkiem. Unz šīs ierīces klasiskais variants ir nelietojams, uz kompja iphone variants ir nelietojams. Taču katrs savā vidē darbojas ideāli. Tas, ko tu vēlies izdarīt, ir to saplēst. Tas nav tāds sīkums “man nepatīk kā te izskatās” – ja šādas iespējas manipulēt nebūtu, tad drop-down izvēlnes šādā vidē būtu ABSOLŪTI NEIZMANTOJAMAS.

    Es palikšu pie nostājas, ka izskats ir pakārtots lietojamībai un lietotāju ieradumiem. Tavs viens web projekts neizmainīs lietotāju paradumus. Un katram ir savi paradumi objektīvu iemeslu dēļ. Un katrai videi ir savas korekcijas objektīvu iemeslu dēļ.

    Offtopic. Cik es pats atceros, tad “dabūt, lai visur izskatās vienādi” daudz laika paņēma laikā, kad vēl tikai mācījos veidot lapas. Kaut kā pēdējā laikā tā nav būtiska problēma. Ja jau sākotnēji izvēlas pareizu atbalstāmo pārlūko kopu, tad viss ir čiki piki. Arī ja tas ietver IE6 – vienkārši nevar lietot lietas, kas tam nav pieejamas.

    Atbildēt
  31. dooh

    Džentlemeņa komplekts – FF 3.5 (izstrādes pārlūks), IE7, IE8, Safari jaunākā versija, Chrome jaunākā versija. Tad ir pārlūki, kuri tiek testēti atkarībā no projekta/apmeklējuma – IE6, Opera, FF vecākas versijas, mobilās pārlūku versijas. IE6 joprojām ir gana biežs viesis visa veida publiskas pieejas lapām.

    Atbildēt
  32. emm

    Nu, jā, tā jau arī domāju, ka Opera ir atstāta pastarīša lomā, bet IE6, IMO, ir diezgan essential visos projektos, lai arī kā mums tas nepatiktu.

    Atbildēt
  33. Vilx-

    Pārlūku izstrādātājiem nav nekādas motivācijas būt 100% savietojamiem ar web standartiem. It sevišķi vadošajiem pārlūkiem – IE, Safari, FireFox. Šo pārlūku lietotāji pārlūku nemainīs no tā, ja viņš mazāk kādus standartus sapratīs. Ja kāda lapa nerādīsies pareizi, vainoti tiks lapas izstrādātāji, nevis pārlūka ražotāji. Un lapu izstrādātāji tāpēc dabon līst ārā no ādas, lai viņu lapas labi izskatītos uz visiem pārlūkiem, taisot visvisādus neglītus hakus, browseru detektācijas, trīskāršus skriptus (pielāgotus katru savam browserim), u.t.t. Beigu beigās praktiski visas lapas ir lietojamas uz praktiski visiem pārlūkiem, un lietotāji ir laimīgi, un savu pārlūku iesaka vēl 3 draugiem. Bet tas viss ir nācis caur weblapu izstrādātāju asinīm. Piegriezies jau.

    Atbildēt
  34. dooh

    emm
    Operai tā arī nav izdevies savākt kaut kādu vērā ņemamu tirgus daļu. Tam papildus Operai ir daži dīvaini IE gļuki. Vari pukstēt un apvainoties, taču es neesmu pasaules lāpītājs – vakarā gribu iet mājās nevis labot Operas gļukus. IE6 nav obligāts visos projekos. Kopš Google ir dropojusi supportu šim pārlūkam, jaunākos projektos es aizvien biežāk daru to pašu.

    Atbildēt
  35. Vilx-

    Katram ir savas īpatnības. Tur jau tas joks – ja Tu uztaisīsi priekš 3 browseriem, tas vēl nenozīmēs, ka uz 4. viss strādās. Un, ja Operu atstāj pēdējo, tad patiesi rodas iespaids, ka viņa ir pilna ar gļukiem, jo, redz, uz IE, FF un Safari jau viss strādā, bet uz Operas gan ne. Tikai cilvēki piemirst, ka viņi nedēļu ir svīduši, lai uz pirmajiem 3 strādātu, bet Operai vērība vēl nav pievērsta.

    Starp citu – Opera ir mans mīļākais pārlūks, kuru visu laiku lietoju. Un, man jāsaka, ka developēt weblapas uz tās ir ellīgi viegli. Praktiski viss, ko Tu raksti, aiziet ar pirmo, un tā, kā Tu esi to domājis. Ļoti maz jāčakarējas. Pēc tam, kad nākas pieslēgt citus browserus, tad gan ir jautri, jo viens neuztur šito, otrs atkal to, trešam atkal kaut kas citādi rēķinās…

    Kāda šķirba, cik kurš procentus standartu uztur, ja no tā Tavs darbs vieglāks nepaliek? Kamēr visiem nebūs 100%, tikmēr jēgas no šiem standartiem nav.

    Atbildēt
  36. dooh

    Nav jau tā, ka Opera ir pilna ar gļukiem – absolūti visiem pārlūkiem ir savas dīvainības. Tieši tāds pats pārlūks kā citi – ne nu baigi labāks, ne baigi sliktāks. Un standarts jau nenozīmē to, ka viss uzreiz iet uz urrā. Par 98% jā, taču šādas tādas lietas tomēr paskrien garām.

    Operas autoriem vienmēr ir bijis jāsaskarās ar tādu lietu, ka pret viņu pārlūku reti kura lapa tiek notestēta. Tādēļ viņi ir implementējuši diezgan daudz visa veida šmaukšanās mehānismu, kas patiesībā nozīmē, ka viņi ir apzināti implementējuši gana daudz sīku defektu. Lapas regulāri testē pārlūku pret kaut kādiem defektiem – ja to noķer, tad tiek izpildīts labojošais kods. Citi ražotāji ir bijuši daudz agresīvāki tirgus iekarošanā, tādēļ praktiski ir panākuši, ka izstrādātāji savas lapas uz viņu pārlūiem īpaši notestē un pielabo. Arī jāņem vērā, ka Operai ir savs neatkarīgs layout dzinējs – Presto. Jaunpienācējam Chrome bija daudz vieglāk iekarot tirgu dēļ fakta, ka lieto to pašu dzinēju, ko Safari – praktiski viss, kas strādā uz Safari, tieši tāpat strādā arī uz Chrome. Tai skaitā “feature detection”, -webkit-* css definīcijas utt.

    Atbildēt

Ieraksti komentāru

Tava e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *