View Full Version : سوال: چگونه فقط عکسها را کش کنم؟
bojakh
دوشنبه 26 تیر 1391, 13:12 عصر
با سلام
من می خوام فقط عکس های وب سایتمو کش کنم چطوری میتونم این کارو بکنم؟؟؟
Mohammadvb6
دوشنبه 26 تیر 1391, 14:42 عصر
Cache کردن قسمتی از یک page :
این کار با استفاده از user control انجام می شود . به این صورت که output caching را در
usercontrol تعریف می کنیم .
پس شما می تونید عکس هارو در usercontrol بزاری و cache کنید .
neda555
دوشنبه 26 تیر 1391, 22:06 عصر
سلام ممنون دوست عزیز یه مثال میزنید...
bojakh
سه شنبه 27 تیر 1391, 09:55 صبح
مرسی دوست عزیز فقط اگه یه لطف بیشتر توضیح بدی و همراه مثال خیلی ممنون میشم
یه چیزه دیگه تو php من دیدم میشه گفت هرچی عکس با پسوند jpg , ... هستو کش کنه تو asp این موضوعو رو نداریم؟
Mohammadvb6
سه شنبه 27 تیر 1391, 14:55 عصر
با فرض این که با نحو کار کردن با usercontrol اشنا هستید (در غیر این صورت در این مورد سرچ کنید) :
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyCachedUserControl.ascx.cs" Inherits="MyCachedUserControl" %>
<%@ OutputCache VaryByParam="None" Duration="10" %>
<asp:Label ID="lblCachedDate" runat="server" ></asp:Label>
Duration : مدت زمانی را به ثانیه مشخص می کند که usercontrol در درون cache قرار دارد .
public partial class MyCachedUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
lblCachedDate.Text = "<b>This Date is cached for 10 Seconds: " +
DateTime.Now.ToString()+ "</b>";
}
}
من در اینجا یک lable(که در یک page قرار می گیرد) رو کش کردم . شما می تونید هر کنترلی (مثلا چند image و یا .....)رو درون یک usercontrol قرار بدید و usercontrol را cache کنید
bojakh
سه شنبه 27 تیر 1391, 19:23 عصر
من مشکلمو حل کردم گفتم برای بقیه هم توضیح بدم شاید یه روزی به کار یکی بیاد
ابتدا فایل ضمیمه شده را از حالت زیپ خارج نموده و سپس در شاخه bin بریزید
بعد این تغییرات را توی web.config انجام دهید
<configuration>
<configSections>
<sectionGroup name="SoftwareArchitects">
<section name="Caching" requirePermission="false"
type="SoftwareArchitects.Web.Configuration.CachingSectio n,
SoftwareArchitects.Web.CachingHandler" />
</sectionGroup>
</configSections>
<SoftwareArchitects>
<Caching CachingTimeSpan="1">
<FileExtensions>
<add Extension="gif" ContentType="image\gif" />
<add Extension="jpg" ContentType="image\jpeg" />
<add Extension="png" ContentType="image\png" />
</FileExtensions>
</Caching>
</SoftwareArchitects>
<httpHandlers>
<add verb="*" path="*.gif.ashx"
type="SoftwareArchitects.Web.CachingHandler,
SoftwareArchitects.Web.CachingHandler"/>
<add verb="*" path="*.jpg.ashx"
type="SoftwareArchitects.Web.CachingHandler,
SoftwareArchitects.Web.CachingHandler"/>
<add verb="*" path="*.png.ashx"
type="SoftwareArchitects.Web.CachingHandler,
SoftwareArchitects.Web.CachingHandler"/>
</httpHandlers>
</configuration>
بعد از انجام این تغییرات کد های زیر را به صفحه برنامه اضافه کنید
namespace SoftwareArchitects.Web.Configuration
{
/// <summary>
/// Configuration for caching
/// </summary>
public class CachingSection : ConfigurationSection
{
[ConfigurationProperty("CachingTimeSpan", IsRequired = true)]
public TimeSpan CachingTimeSpan
{
get { return (TimeSpan)base["CachingTimeSpan"]; }
set { base["CachingTimeSpan"] = value; }
}
[ConfigurationProperty("FileExtensions", IsDefaultCollection = true,
IsRequired = true)]
public FileExtensionCollection FileExtensions
{
get { return ((FileExtensionCollection)base["FileExtensions"]); }
}
}
در انتها به فایل های مورد نظر که میخواهید کش شوند یه ".ashx" اضافه میکنید
به این صورت اگر فایل شما pic.jpg باشد به pic.jpg.ashx تبدیل میشود
این قسمت رو هم اضافه کنید
using System.Configuration;
البته فک کنم بشود بقیه فایل ها و پسوند ها رو هم اضافه کرد
امیدوارم به کارتون بیاد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.