View Full Version : فشرده کردن html خروجی صفحه
hmahdavi921
پنج شنبه 14 تیر 1397, 10:49 صبح
سلام
میخوام کدهای اچ تی ام ال سایت رو فشرده کنم. روشهای مختلفی داره. تو ناگت پکیج WebMarkupMin رو پیدا کردم اما نتونستم ازش درست استفاده کنم.
دوستان کسی نحوه استفاده از این پکیج رو میدونه؟
با تشکر
r4hgozar
پنج شنبه 14 تیر 1397, 17:50 عصر
سلام.
در asp mvc بطور پیش فرض با روش gzip فشرده سازی میشه و نیازی به انجام این کار نیست
hmahdavi921
پنج شنبه 14 تیر 1397, 19:31 عصر
سلام.
در asp mvc بطور پیش فرض با روش gzip فشرده سازی میشه و نیازی به انجام این کار نیست
ولی تو page source کلا فاصله و خط جدید وجود داره که حجم صفحه رو بالا میبره. با حذف اینها حجم خیلی کمتر میشه
سورس این صفحه رو ببینید : http://asp-mvc.ir/
alireza_s_84
پنج شنبه 14 تیر 1397, 20:06 عصر
سلام
میخوام کدهای اچ تی ام ال سایت رو فشرده کنم. روشهای مختلفی داره. تو ناگت پکیج WebMarkupMin رو پیدا کردم اما نتونستم ازش درست استفاده کنم.
دوستان کسی نحوه استفاده از این پکیج رو میدونه؟
با تشکر
using DoctorCode.Text;using System.Web.Mvc;
namespace DoctorCode.Web.Mvc
{
public class CompressedViewPage<TModel> : WebViewPage<TModel>
{
public override void WriteLiteral(object value)
{
#if DEBUG==false
if (value != null)
{
var html = value.ToString();
//html = html.Replace("\u200c", "‌");
html = RegexDb.SpacesBetweenTags.Replace(html, "> <");
html = RegexDb.NewLinesBetweenTags.Replace(html, " ");
if (RegexDb.DocType.IsMatch(html))
{
var match = RegexDb.DocType.Match(html);
html = RegexDb.DocType.Replace(html, string.Format("{0}\r\n", match.Value));
}
if (typeof(MvcHtmlString) == value.GetType())
{
value = new MvcHtmlString(html);
}
else
value = html;
}
#endif
base.WriteLiteral(value);
}
public override void Execute()
{
}
}
}
این کلاس رو تو پروژه تعزیف کنید بعد همه Viewها از این کلاس ارث ببرن.
نکته: کامنتها حذف میشن پس اگه از Virtual Element (مثال در ناک اوت) استفاده میکنید اونوقت کدهاتون درست کار نمیکنه. با دستکاری regex میتونید کامنتها رو نگه دارین
hmahdavi921
شنبه 16 تیر 1397, 13:52 عصر
using DoctorCode.Text;using System.Web.Mvc;
namespace DoctorCode.Web.Mvc
{
public class CompressedViewPage<TModel> : WebViewPage<TModel>
{
public override void WriteLiteral(object value)
{
#if DEBUG==false
if (value != null)
{
var html = value.ToString();
//html = html.Replace("\u200c", "‌");
html = RegexDb.SpacesBetweenTags.Replace(html, "> <");
html = RegexDb.NewLinesBetweenTags.Replace(html, " ");
if (RegexDb.DocType.IsMatch(html))
{
var match = RegexDb.DocType.Match(html);
html = RegexDb.DocType.Replace(html, string.Format("{0}\r\n", match.Value));
}
if (typeof(MvcHtmlString) == value.GetType())
{
value = new MvcHtmlString(html);
}
else
value = html;
}
#endif
base.WriteLiteral(value);
}
public override void Execute()
{
}
}
}
این کلاس رو تو پروژه تعزیف کنید بعد همه Viewها از این کلاس ارث ببرن.
نکته: کامنتها حذف میشن پس اگه از Virtual Element (مثال در ناک اوت) استفاده میکنید اونوقت کدهاتون درست کار نمیکنه. با دستکاری regex میتونید کامنتها رو نگه دارین
ممنون از پاسختون فقط RegexDb مربوط به کدوم dll هست و اینکه چطور میتونم ویوها رو از این کلاس ارث بری کنم؟؟؟؟؟
public ActionResult sample()
{
return View();
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.