HttpHandlers / Modules :: Cache Images - Page Takes To Long Due To Images Not Caching?
Mar 31, 2010
I've been trying to get image caching working for the last 8 hours and I keep the same problem time and time again, I'm trying to cache Images at the moment and then when thats succesful, apply this to cache my js and css files. I have at the moment Sql Dependancy caching working on my dynamic pages but the page still takes to long due to images not caching.
What I have tried is going to IIS7 Management and adding HTTP Response Header for the images folder and setting various things for the cache control.i dont care how long it caches it on the client or on the proxy servers i just would like it to check when the file was modified and compare it with the one in the client or proxy cache and if they are different then fetch the new image which has been ftp up. i could solve this by changing the image name but the thing is the image name is generated when they are ftp'd to the site by an application and the name is a direct reference to the product so i cant change the name each time, as it would mean making a lot of otherpages accross the board.
so What i would like, is to set and expiry date of lets say 32 days or more on the images and then check to see if they have changed by date modified or some other way of checking(Etags maybe) I'm not sure, if they have changed on the server then redownload and recache them, I tried using post-check and pre-check together but that just permantly cached them, so when i change the image the only way it would display the new image is to just hit F5.
In Brief, how can i Cache images, on the client machine/ proxy cache and recache them when the modified date of the file has changed.
I have a website [URL] . When you click on any thumbnail image Safari renders the images but in Firefox show up as binary garbage. (safari does not render gif images but does .jpeg images)
in my .cs file for the gridview itemtemplate I supply the following string
i have a custom handler which captures user's book mark entry. To debug this handler, i have created a file "test1.txt" in code behind which saves the user entry. After the debug, i removed the text file (test1.txt) then re-complied the web app and deployed new DLLs for the site. But, the site is still looking for test1.txt file. i dont know how to confirm if the handler is really removed from the new DLL. Also, looked at the handler code behind file and didn't find any entry with test1.txt. So,
According to MSDN documentation, this is supposed to set the Cache header "Expires" to a certian value. A check of fiddler for the response from my handler indicates the Expires is being ignored. Is this a known bug? I see other posts where people have just given up with out an answer.
I have a compression module built based on several examples on the web. Initially, I hooked into the BeginRequest event of the application context to conditionally compress certain file types. This seems to have worked fine for JS and HTML, but CSS was giving me trouble. Here are the specific steps I could take to reproduce the problem consistently.
3) When user is on page where Ads are displayed now user clicks Back-Forward and come back to that page. This time if user come back within 15 sec. Same image will be displayed and no money will be diducted for that. So here I will need to show Image from cach.
4) Only once load images from server. For each other cycle to display images fetch it from cach.
i recently made a website and have uploaded it to a hosting server. After i had completed the website i noticed that i never added in any expiration onto the files/images plus that i dont know how to do this outside of IIS. As i dont have access to the IIS on the server i need a way of embeding code to set a short exportaion on the images and xml files cached. whats the best way of doing this?
I have tested my pages in Firefox & IE and looking at Firebug in Firefox for some reason some images are taking a long time to load. They are not very big in comparison to the ones which are loading quicker.
Attached is a screenshot of Firebug.
I especially notice it in IE with the progress bar at the bottom of the page, it just sits there saying loading image...
Could it be the path or something which is http://localhost:49211/Content/_layout/images/bg-footer.png for example
I have an application that uses an Asynchronous HttpHandler for retrieving images from a fileshare It appears the performance of this is quite poor. I have two questions:1. Does it make sense to use an IHttpAsyncHandler for this or will an IHttpHandler work fine? I have four images on a page that need to be loaded this way and it seems that they all load sequentially instead of in parallel. Since we have some JavaScript in the body onload event, it doesn't get excuted until all four images are finished loadingy bearing on this.
I just ran Google's Page Speed application against our site and one of the recommendations was to Leverage browser caching. Expanding this revealed the following:
The following cacheable resources have a short freshness lifetime: Specify an expiration at least one week in the future for the following resources: <a long list of images > <some javascript files >
How do I go about lengthening the "freshness lifetime" of particular images?
i have implemented an image preloader using javascript inside my mvc 2 web app, in order to display an animated "loading" image .gif while sequentially displaying page images.I have also implemented caching using a cache profile for the controller action that displays the specific page ([OutputCache(CacheProfile = "LongCache")]).The problem is that the image preloader javascript is called when caching is applied. I was wondering whether i could, somehow, use the image preloader code only when the page gets refreshed and not when the cached version is rendered.
I would like to set cache- control on a folder of images in a web application . In that way i can cache the images and the web pages will load a lot quicker . I can specify this in IIS by putting a ISAPI extension , but how can i do the same thing in asp.net application, ie create that setting in IIS when the application first starts up .
Assume a simple aspx data entry page in which admin user can upload an image as well as some other data. They are stored in database and the next time admin visits that page to edit record, image data fetched and a preview generated and saved to disk (using GDI+) and the preview is shown in an image control.
This procedure works fine for the first time however if the image changes (a new one uploaded) the next time the page is surfed it shows previously uploaded image. I debugged the application and everything works correct. The new image data is in database and new preview is stored in Temp location however the page shows previous one. If I refresh the page it shows the new image preview. I should mention that preview is always saved to disk with one name (id of each record as the name).
I think that is because of IE and other browsers use client cache instead of loading images each time a page is surfed. I wonder if there is a way to force the client browser to refresh itself so the newly uploaded image is shown without user intervention.
I am trying to access the page object in module and change the hyper links urls. Page object is being access properly, but changes I am making are not effecting the output. I mean here I am changing the url to TestURL.aspx, but this is not comming. could
[OutputCache (Duration=20, VaryByParam="None" )] public ActionResult display() {}
This code cache whole page.But, my site has user infomation on top like this ASP.net. The user info "Signed as userid | Edit Profile | ..." section should be changed when user sign in/out. But rest of the page is always same and it's good to Cache.
If the above code is used, the user info on top also cached and give wrong info to user.
I want to show on one of my pages a slideshow type page. Basically I want it to show a selection of images from a folder and have the images scroll from right to left.
I want to write one program by visual studio 2008 (C# and ASP) that has web application and windows application.
I want to get clients images in web app(upload) and store them in DB (mysql) then send these images to windows app via web service (so i new web service, not web site). But i have 2 problems:
I have 2 ways to store images in mysql, first i should have BLOB field in DB -that it takes more space-, second i should save just name of each image in DB(so have image in one folder) -in this way i don't know how get image from clients and store them in that folder-. which one? Or what other? How (code) can i transfer image via web service(Byte[] or? ).
how to upload images to server(application/images folder) and retrive(display) from and on client PC for asp.net. its just for uplaoding logo directly to server folder and retriving from server to client. i am not getting server path on client pc for image.
i have the following scenario, i have a column of a gridview that shows me a text telling me is the user is allowed or not to access to some page, but now i just showing allow and deny, but i wanna show images that represent me the action, how can i do that?
I wanted to combine app_themes css files into one on the fly. I did so using Mads Cristensen technique. But now all elements that has background image defined through css (see picture) don't display image. I believe that is because css files are not relatively referenced anymore (../), but through axd file. I'm trying to fix this by changing reference to image files without success. I already tried background: url("~/App_Themes/44/images/myimage.gif") and this works for pages that combined css. But the problem is that there are other pages in this project that don't use this css combining and now they lost reference to background images.
i am trying to have a download on my page. I have implemented the code below but code execution stops after the download message pops up, even if i press save or cancel, nothing happens after that.
[Code]....
I have tried it a few times without Response.Clear() and Response.End() but it didn't make any difference to take these off. Is there anyway I can achieve this without having to using an IFrame?