Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Koden (FileSystemObject) går trögt på servern...

Postades av 2004-11-30 21:41:47 - Johan Petersson, i forum asp - allmänt, Tråden har 4 Kommentarer och lästs av 462 personer

Hej alla sköningar!

Jag har kodat en liten grej i ASP som slumpar fram en bild från en katalog. Då har jag använt mig av FileSystemObject för jag vill slumpa bilden från katalogen oberoende av hur många bilder den innehåller och oberoende av vad filnamnen är. Problemet är att det går onödigt långsamt för sidan att ladda. Nu undrar jag om det finns någon i den här härliga gemenskapen av professionella utvecklare som har en smartare lösning som inte är lika tungkörd för servern.

Här är koden:
-----------------------------------------------------------
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

Dim objFolder
Set objFolder = objFSO.GetFolder("bilder/thumbnails")

Dim objFile
Dim x
Dim svin(200)

x = 0

For Each objFile in objFolder.Files

svin(x) = objFile.Name
x = x + 1

Next

Randomize
slump = Int(Rnd * x)
-----------------------------------------------------------

Sedan skriver jag ut den i html med <img src="bilder/thumbnails/<%=svin(slump)%>">

MVH
Johan


Svara

Sv: Koden (FileSystemObject) går trögt på servern...

Postades av 2004-11-30 22:59:07 - Per Hultqvist

Kan du inte försäkra dig om att bilderna har kända filnamn som t ex "1.jpg", "2.jpg" o s v? Då behöver du ju bara veta antalet filer i mappen som matchar "*.jpg" och sedan slumpa fram ett filnamn :
<code>
filnamn=cstr(slump) & ".jpg"
</code>
Det finns verktyg som döper om filerna automatiskt (t ex JASC Painshop Pro) men även Windows har en inbyggd funktion för detta. Prova att markera flera filer i en mapp, tryck på F2 (eller högerklicka och välj Rename) och skriv in ett filnamn. Anger du "bild.jpg" så kommer filerna du markerat att döpas till :

bild.jpg
bild(1).jpg
bild(2).jpg
bild(3).jpg
... o s v

Då slipper du använda filesystemobjektet och du behöver inte lista alla filnamn.


Svara

Sv: Koden (FileSystemObject) går trögt på servern...

Postades av 2004-12-01 09:13:30 - Marcus Gus

Omständigt du gör det då... ;-)

OBS, det nedan har jag inte testat men det borde fungera. Som vanligt så är variabelnamn mm inte bokstavliga utan det nedan är mer för att visa hur man skulle kunna göra.

<code>
Function GetMyfunnyFile() as string
Dim FSO As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder, SubFolder As Scripting.Folder

Set FSO = New Scripting.FileSystemObject
Set SourceFolder = FSO.GetFolder("bilder/thumbnails")

Randomize
dim slump as integer
slump = Int(Rnd * SourceFolder.Files.Count)

GetMyfunnyFile = SourceFolder.Files.Item(slump).Name

end function

</code>

oxå anropar du

<info>
<img src="bilder/thumbnails/<%=GetMyFunnyFile%>">
</info>


Att ersätta filnamen med andra namn är ju inte en bra lösning(framförallt inget en lat programerare skulle göra ;-) ) iom att det ställer till andra problem.
1. Hur gör du om du vill uppdatera bilderna med andra bilder, dvs ersätta bilden "myfunny.jpg" med "myunfunny.jpg"? Vilken av bilderna bild(1).jpg, bild(2).jpg osv är "myfunny.jpg"? Skall man då sitta och manuellt gå igenom dem och leta efter "myfunny.jpg"? Nä, jag är lat och vill inte göra sånt.
2. Lägga till nya bilder. Skall du lägga till nya bilder så måste de döpas om... Jobbigt och jag är lat, dvs mycket bättre om det bara är att kopiera över filerna och det fungerar.

Edit: provade att lista filerna i en katalog mha ett winform, >1600 filer gick toksnabbt att lista namnen på.


Svara

Sv:Koden (FileSystemObject) går trögt på servern...

Postades av 2004-12-01 11:23:44 - Johan Petersson

okej... ja din lösning är definitivt mycket bättre! Jag testade den och den fungerar bra. Den är kortare och jag slipper loopa igenom alla filerna! Så hur som helst var den till hjälp!

Men jag upplever fortfarande den där fördröjningen precis som innan. Kanske handlar det helt enkelt om att jag använder FileSystemObject och att det är det som tar lite tid - hur jag än kodar? För mig så tar det i alla fall lika lång tid att lista alla namnen i katalogen... Men det handlar kanske om 2 sekunder, fast det känns länge.

Då för det mig in på nästa fråga:
Kan man göra så att all design laddar innan ASP operationerna så att själva fördröjningen bara gäller bilden som ska slumpas och inte hela sidan? Jag har försökt att lägga html-koden före, men det hjälper inte. Det verkar som den läser all ASP först...

Tack för all hjälp!

MVH
Johan


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 783
27 960
271 761
633
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies