Jump to content
php.lv forumi

Vairāk pieprasījumi reizē..


rnc

Recommended Posts

Man ir radies jautājusm par pašu PHP darbību.

 

Tātad, pieņemsim, ka ir cilvēks A un cilvēks B. Ir serveris (S) kuram ir uzinstalēts kaut kāds web serveris ar PHP. Uz servera mētājas skripts (lai labāk izprastu manu jautājumu, pieņemsim, ka šī skripta apstrādei vajag 3sec.).

 

A un B vienlaicīgi S izdara pieprasījumu šim skriptam. Protams, tas vienlaicīgi ir tīri cilvēciska nozīme, tehniski tāpat ir dažu milisekunžu starpība. Katrā gadijumā iznāk tā, ka B izdara pieprasījumu tad, kad serveris vēl nav apstrādājis A pieprasījumu.

 

Kas notiek šajā gadijumā? Vai serveris sāk B pieprasījumu apstrādāt paralēli A pieprasījumam, vai tikai tad kad A pieprasījums ir apstrādāts?

 

Kādēļ man radās šis jautājums? Tādēļ, jo vēlos uzveidot galeriju. Man ir skripts, kas apstrādā (pareizāk sakot samazina bildi) bilde.php, var izmantot šādu variantu..

<img src="bilde.php?path=bumba.jpg" alt="lalal" />

Bet tīri principa pēc, es gribu padot šim bilde.php skriptam, bildes linku tā, lai jūzeri to neredz. Ir ideja to realizēt, izmantojot kādu atsevišku failu. Piemēram, skripts index.php nolasa bildi no direktorijas, bildes linku ieraksta txt failā, pēc tam pieprasa to <img src="bilde.php" />, bet bilde.php to nolasa no ši faila... Ceru, jūs saprotiet, kādēļ ši pirmā jautājuma daļa tāda..

 

Galerijas risinājums pagaidām nav tas svarīgākais, ziņkāre par pašu PHP darbību..

Link to comment
Share on other sites

uz linuksiem labi strādā flock

uz windowiem tas jāsimulē, e.g. no sākuma uztaisa failu faila_nosaukums.tmp, nākošais process pirms rakstīšanas pārbauda - ja ir tāds fails, tad gaida (while file_exists, sleep)

t.i. pēc FIFO (first in - first out) metodes

Link to comment
Share on other sites

Kāpēc nevar uzģenerēt kautkādu failu ar random nosaukumu, un viņa nosaukumu ielikt usera sesijas mainīgajā, tad katram lietotājam būs savs fails, un nevajadzēs satraukties, vai tur pieprasījumi reizē izpildās vai nē.

Link to comment
Share on other sites

Paldies par ieteikumiem. Škiet, ka nebūs grūti atrisināt problēmu ar informācijas nodošanu otram skriptam.

 

Bet ejot pa ielu, domāju par šo visu :-) un man radās jautājums. Kā tas nākas, ka visām bildēm būs links <img src="bilde.php" />. Tas tak nav reāli?

 

Piemēram, ja man ir skripts:

for ($i=0;$i<=10;$i++) echo 'lalala';

 

Tad sākumā PHP tos visus echo savāc un tad sūta pārlūkprogrammai, vai pēc katras cikla reizes to dara?

 

Tad arī galu galā iznāks tā, ka ja arī man tās informācija ub3rl337i tiks nodota bildes.php skriptam, tad galu galā pārlukprogramma, kad saņems gatavu kodu, pieprasīs bildes.php, bildes.php paņems pēdējo ierakstu no tā txt faila un izģenērēs visur vienādas bildes...

 

Jo dziļāk mežā, jo vairāk koku. Laikam jāizmanto vienkārša metode un viss būs kārtība.

Link to comment
Share on other sites

rnc

neglabā bilžu indeksu failā, liec jamo sesijas mainīgajā. Vai arī, lietotājam atverot galeriju, uzģenerē viņam atsevišķu teksta failu ar unikālu nosaukumu un tālāk tikai padod šī faila vārdu - vis atava bilžu infa glabāsies katram lietotājam savā teksta failā.

Link to comment
Share on other sites

for ($i=0;$i<=10;$i++) echo 'lalala';

Tad sākumā PHP tos visus echo savāc un tad sūta pārlūkprogrammai, vai pēc katras cikla reizes to dara?

 

beigās, ja vien netiek pielietots flush() (un arī tad ne vienmēr, ja viss notiek aiz proxy)

 

pārlukprogramma, kad saņems gatavu kodu, pieprasīs bildes.php, paņems pēdējo ierakstu un izģenērēs visur vienādas bildes...

jāatceras, ka pieprasot k-ko pārlukprogramma sevi var unikāli noidentificēt, ar to pašu sessiju, t.i. katrai pārlūkprogrammas instancei uz servera tiks uzsāknēts atsevišķs process, jebšu varētu teikt atsevišķa bildes.php versija (ar atšķirīgiem ievaddatiem) - nav jādomā par to kā par klasisko programmu-serveri.

Link to comment
Share on other sites

×
×
  • Create New...