Kom ihåg mig?

Hur autoloadar Blocket sina bilder?

 
Ämnesverktyg Visningsalternativ
Oläst 2013-03-07, 18:32 #1
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
Standard Hur autoloadar Blocket sina bilder?

Kolla här och flippa mellan de 2 olika bilderna.
http://www.blocket.se/jonkoping/Buga....htm?ca=17&w=1

Det känns som den ena bilden är inladdad vid request. Är den det?
Det jag reagerade på var att den ändrar src="" på mainbilden.
Men om dom nu autoladdar filen innan, vart läggs den isåfall? Har icke hittat deras JS-funktion för detta.
secag är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 19:17 #2
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
Kod:
$("#thumbs .thumb_element").click(function() {
	var thumb_link = $($(this).children(0));

	// Remove marked thumb
	$("#thumbs img").removeClass("transparent");

	// Mark selected thumb
	$("#thumbs #thumb_" + thumb_link.attr("id").substring(11)).addClass("transparent");
	blocket.apps.view.hide_video();

	// set correct "Alla bilder" css
		$('.all_images_container').removeClass("ais_all_border_active").addClass("ais_all_border_inactive");

		// get index of clicked thumb
		var image_index = parseInt(thumb_link.attr("id").replace(/thumb_link_/g, ""), 10);

		// set image source
		blocket.apps.view.set_ais_image_src(image_index);

		return false;
	});
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 19:19 #3
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
Tack, men det hjälper inte mig så mycket :/.
secag är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 19:35 #4
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
Om du kollar i scriptet, som de använder, så kallar de en funktion.

Citat:
blocket.apps.view.set_ais_image_src(image_index);
Denna har säkert bilderna laddade. Är bilden på image_index inte redan tidigare laddad, så laddas denna med AJAX, det förklarar det lilla delayet första gången man switchar bilder, men inte efter det.

Kort och gott, AJAX.
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 20:33 #5
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Ajax har faktiskt ingenting med saken att göra såvitt jag kan se. Jag skummade igenom js-källkoden och tyckte mig ganska snabbt kunna se att de skapar en array med sökvägar till bilderna som de sedan preloadar så fort DOM:en är klar.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 21:02 #6
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
Jag valde att skriva ut alla <img länkar men endast visa den första.
sen när jag klickar på en thumb så döljs alla och sen visas den man klickade på.

Än har jag inte stött på att man ser när bilden döljs och visas. Alltså content åker upp och sen ner när den nya bilden kom upp.
secag är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 22:32 #7
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Jag jobbar inte med frontend-utveckling längre men jag hade nog gjort nåt åt det håller också. Fast det beror på vilka krav som finns.

På min tid preloadade man bilderna genom att skapa image-objekt i minnet (inte i DOM:en) som man sen satte src-attribut på. Detta gjorde att bilderna lästes in i bakgrunden men det är möjligt att webbläsarna har ändrat beteende sedan dess. Dessutom kanske man vill att bilderna ska finnas i Html-koden.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 23:00 #8
Alexs avatar
Alex Alex är inte uppkopplad
Administratör
 
Reg.datum: Sep 2004
Inlägg: 1 621
Alex Alex är inte uppkopplad
Administratör
Alexs avatar
 
Reg.datum: Sep 2004
Inlägg: 1 621
dAEk, det är så blocket preloadar också. Det är det absolut lättaste.
Lösingen du valde, secag, är okej, men inte helt rätt. Vad som händer nu är att sidan inte är "loaded" förens bilderna är inladdade, eftersom att de bor i DOM-trädet. Det spelar nog ingen roll för din del, men det kan vara bra att veta.

Ta en titt på en lösning som dAEK föreslår här;
http://engineeredweb.com/blog/09/12/...nd-javascript/
__________________
@Zn4rK - Börja blogga - Paintball i Göteborg
Det jag skriver är mina personliga åsikter och återspeglar inte vad WN eller andra företag jag representerar tycker.
Alex är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-07, 23:10 #9
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
secag secag är inte uppkopplad
Medlem
 
Reg.datum: Nov 2012
Inlägg: 211
Så man tar alltså och lägger hela <img> element i en js array?
Så när man väljer att skriva ut ett element så finns redan hela bilden i arrayen och då behöver html inte leta reda på den?
secag är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-03-08, 20:17 #10
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Citat:
Ursprungligen postat av secag Visa inlägg
Så man tar alltså och lägger hela <img> element i en js array?
Så när man väljer att skriva ut ett element så finns redan hela bilden i arrayen och då behöver html inte leta reda på den?
Typ så, svar ja.

Kod:
var images = ["http://host/images/1.jpg", "http://host/images/2.jpg", "http://host/images/3.jpg"];

for (var i in images) {
    new Image().src = images[i];
}
Hoppas att det blev lite tydligare nu.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017