Cached Page Class Updated And Rebuilt?
May 26, 2010When is the cached Page class updated and rebuilt?
View 1 RepliesWhen is the cached Page class updated and rebuilt?
View 1 RepliesWe have an ASP.NET web application and it's hosted using IIS 6.0, in the app we have these several javascript and css files located in a folder, and for performance sake (according to YSlow) we set the folder content expiration header to 1 year. Everything worked just fine until recently when we deployed the latest build to the server, in which we had made some changes to those javascript and css files. For some reason after the deployment some of our end users don't see the latest changes when they connected to the app, even after they cleared the cache in IE. We have also restarted the IIS on the server and the problem still remained. When I went into the IE Temporary Internet Files folder on one of these machines I saw the files were still the older version and not the latest one, I had to manually delete the files from the Temporary Internet Files folder then they were able to see the latest changes. I'm baffled by this, how come only some users who couldn't see the changes but some others do (without having to do anything by the way), and how do I make sure that for future releases we won't have to do anything like what did (manually deleting the cached files)? For now I disabled the Content Expiration option in IIS for these files but I would like to know if there is a way that I can enable the content expiration (to help performance) but at the same time making sure when the files are updated, the latest version will be used for the end user (instead of the cached version)?
View 3 RepliesI'm implementing Outputcache in my application and it works fine, but the first time always take a lot to load and the next following request will be faster...
I would like to know if there is a way to initiate the page caching on the server side and serve the cached page upon the very first request, rather than have it triggered by the user one first time.
why all the resources in my page are being requested EVERY single time. E.g. my site.css returns the following headers (using fiddler):
HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Mon, 29 Nov 2010 17:36:21 GMT
X-AspNet-Version: 2.0.50727
Content-Length: 9093
Cache-Control: public, max-age=2592000
Expires: Wed, 29 Dec 2010 17:36:21 GMT
Last-Modified: Mon, 08 Nov 2010 17:20:16 GMT
Content-Type: text/css
Connection: Close
But every time I hit refresh I see all the resources (css,js,images) getting re-requested. I have control over the headers returned for any and all of these resources, but I haven't figured it out yet.I have even debugged my ASP.NET app and the HttpModule is definitely being asked for the resources again.
EDIT:Ok, I removed must-revalidate, proxy-revalidate from the headers and that is getting me closer to where I want to be, now when I press back it still requests my css/js files when I press back.
Is it possible to detect whether an ASP.NET Page is about to be cached and if so, how?The HttpCachePolicy object provides only set-methods. The VaryByParams name-value collection is useless if values other than "None" and "*" are set as it impossible to enumerate them and you can only access them by key
View 1 RepliesMy web page is still displaying a previously cached versions of the page. I have this in the page_load event:
Response.Clear();
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1;
Response.CacheControl = "no-cache";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
I have this in the Page_Init:
protected void Page_Init(object Sender, EventArgs e)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
}
Lets say you have a page with headers that tell the browser not to cache.Also, this page has already been posted back to itself.Now you hit the refresh button and you click cancel on the IE modal box with the "previously submitted..." message.You get "Webpage has expired". This doesn't happen in FF or Chrome.Is there a way to prevent the "Webpage has expired" message in IE?Since the page isn't cached, I guess IE has nothing to render.But if the page isn't cached and FF and Chrome shows it, I guess they just show the page as previously shown?
View 1 Replies"Firstly check if "default.aspx" page is cached on the browser or not; if yes then Response.Redirect("default1.aspx"); else Response.Redirect("default2.aspx")
View 5 RepliesIs there a way to prevent a page from being cached based on some logic?
I want to cache anonymous access to a page, so I can set VaryByCustom="user" and have some magic in Global.asax's GetVaryByCustomString method. Ok. But I don't actually want to cache the page if the user's authenticated, only if it's not authenticated. Is there a way to specify this kind of thing?
The reason I want the data to not be added to the cache to begin with (instead of added with some random key) is that as the cache grows things get thrown out and I don't want the non-authenticated version to get thrown out.
I Have a TreeView that I populate from a DataTable.Once it has been populated, I Cache the Treeview.If I try to add the cached TreeView control to my page, nothing happens. No errors no nothing.If I create an empty TreeView control on the page and do a "Do Until" loop and add each node to that empty TreeView, that works! but only once. The next time it loops, for some reasion the CachedTree.Nodes.Count = 0.I can't see what I'm doing wrong.
[Code]....
Here is my code. I just wanted to update one column. Why is everything getting NULL put into it?
[Code]....
[Code]....
I have an asp.net intranet site hosted on IIS on my computer.
On one page you can enter two user id's and get a side by side comparison of their roles in our (custom app) system.
I often use it to add roles when I'm setting up new users. After running the query, if i change a role and run the query again it will not show updated results. It's being cached somehow. I have to go to another page and come back and them run the query to get updated results.
How can avoid having to navigate away to get the updated query results displayed.n
[Code].....
I'm using the following syntax to bind to a div element:
<div id="previewdiv"><%=Preview%></div>
Where Preview is a property on my page.The catch is that I'm creating this in Javascript on a new page in an onclick event. On the server side, I'm able to reference the new page via this property but for some reason when the page is postback the variable is getting set to the default initialized value and not to the value that I set in my page, i.e Preview = string. When I postback a second time then the page will be updated with the value I set.I could perhaps move the code to the Init but I need to get values from controls to Initialize this property.
I'm pretty new to ASP.NET and very new to the concept of caching.
Using MCMS 2002, I built a template.aspx page that receives a "person_id" query string and builds pages accordingly. Several different departments at the school where I work are using this template to display faculty biographies. This much is all working correctly.
The Problem
The problems start happening when I try caching the page. When a person visits person_id=16175 on one department's page, then visits the same numeric bio on a different department page, it loads the cached page instead of rebuilding it. The problem, then, is that it has all of the wrong department branding. For example:
[URL]
It's the same person_id, but the URLs are obviously different. It would be great if the template would recognize the different URLs and ignore the cache. I'm assuming that the problem lies in the fact that both pages are being built using the same aspx page on the backend. Here's the OutputCache bit from the aspx page:
<%@ OutputCache Duration="86400" Location="Server" VaryByParam="person_id; section" VaryByCustom="CMSPosting" VaryByHeader="Referer" %>
I assume I'm doing something wrong here. Hopefully it will be obvious to someone who knows that they're doing. If you need more info, don't hesitate to ask.
Whenever I load the asp.net page first time the page source is updated but
when postback fires through ajax then I view the page source from browser,
It is the same which loads first time.
Why it is not updading?
How can I view the updated one?
I have some asp.net pages that read and write cookie values. During the life cycle of a page it may update the cookie value and then need to read it again further in the code. What I've found is that it's not getting the latest value of the cookie until a page refresh. Is there a way around this? Here's the code I'm using to set and get the values.
public static string GetValue(SessionKey sessionKey)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiePrefix];
if (cookie == null)
return string.Empty;
return cookie[sessionKey.SessionKeyName] ?? string.Empty;
}
public static void SetValue(SessionKey sessionKey, string sessionValue)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies[cookiePrefix];
if (cookie == null)
cookie = new HttpCookie(cookiePrefix);
cookie.Values[sessionKey.SessionKeyName] = sessionValue;
cookie.Expires = DateTime.Now.AddHours(1);
HttpContext.Current.Response.Cookies.Set(cookie);
}
I have a long running asynchronous process which returns a total of around 10-100 results over a 5 minute period. I want to update the page with the progress of the job and also show each result on the page in a list that grows dynamically as results are returned, all without any postback or page refresh.
View 6 Repliesi have an application consisting of two asp.net projects. And i have have a BasePage which inherits System.Web.UI.Page and have the class some core logic which i require in all of my pages(Implemented in BasePage.cs). So all my pages inherit this BasePage.cs . Now can an Webservice inherit the same class apart from the normal webservice class System.Web.Services.WebService
View 4 RepliesI have a webpage with multiple updatepanels on. One of the panels takes a long time to load. I therefore start a timer on page load and the timer.tick event populates the accordion control within the panel. Because of the amount of data I have used a paged data source and have link buttons to scroll through the results.
I need to implement animation, both on the initial page load and each time the button is clicked to move through the pages. The animation is, show a loading icon and hide the accordion/grid, once the data is loaded, display the accordion/grid and hide the loading icon. I have tried both the PageRequestManager and AnimationExtender, which I fail to get working for both the initial page load and Updating/Updated events.
Is it possible to populate the updated data from the database to a repeater with out refreshing the page and with out using an update panel? This is my requirement.I have an option to save Name & Age to the database
Name <*textbox accepts name> : Age <*textbox accepts the name> Save Button
The user clicks on a button on a page and as a result he gets a new page send back.
Most times everything is fine now, but sometimes this page needs to be updated within a few seconds but the user don't knows this.
I know I can poll from the client site with reload, but this does not fit here.
I need a kind of push update from server to client ... the action must be initiated from server, not from client ...
I run through some code in my debugger that is definitely changing the value of a label on a master page. But it's not changed on the page:
// set the label on the masterpage
olbl.Text = Session["TestScriptCount"].ToString() +
" Test Scripts";
Label olbl = (Label)Page.Master.FindControl("TestScriptCount"].ToString()
+ " Test Scripts";
I have Dropdownlist and Datalist in Usercontrol. Images in Datalist will be loaded
according to Drodownlist Selected Value.I have placed the Usercontrol in Page with Update panel. So Now Usercontrol is placed With in Update Panel.the problem is Datalist is not Updated Properly. according to the Dropdownlist Selected Value.Can any one solve this issue.
I have a datalist and gridview that have a image in a column.. when you click the imagebutton, its calls my method that updates a table. The page is posting during this event, but when the page is done, the image hasnt changed.. im sure it has to do with the datasource not binding during that click.. so where can i move this code to or can i simply bind the control during that click? Currently im handling it in the itemdatabound event.. which would explain it.. but where is the correct place to handle this logic?
[Code]....
The control on the page is configured like so..
[Code]....
I might be asking a dumb question, but I have a client for whom I need to build many websites (10+) (asp.net 3.5) which will all the pages on each site will have the same codebehind, but the sites will launching in different regions and whilst following the same template, will have different content.I have built and launched site 1, and sites 2, 3 & 4 is nearly live, but it occurs to me that as all the sites are basically the same, the code is going to get more complicated to update as it will be duplicated, so if I need to do a bug fix on one site, I'll need to do the fix on all websites (and this is going to get complicated.)
I was wondering if it possible to somehow create a class library of all the current aspx.cs files, reference this dll in each website and then inherit these classes into the .aspx.cs files. So default.aspx in each site would still have a CodeFile of "Default.aspx.cs", but Default.aspx.cs would inherit the corresponing class from the dll:
using WebPagesClass;
public partial class _Default : WebPagesClass._Default
{ }
The reason for doing it like this is that if I need to change any code on a specific website (for minor changes in languages for instance), I can override the page functions and change the parts required. For all other pages which have not cha, I can just copy from a single website.Is this vaguely possible? If not anyone one got any killer suggestions of how to manage so many websites from a single codebase?