NOTE: Apart from
(and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.
Friday, 13 September 2024
//Less than a minute
अब जबकि मेरे पास गृह पृष्ठ पोस्टों का एक गुच्छा हो रहा था......तो मैंने ब्लॉग पोस्टों के लिए एक paning सुविधा जोड़ने का निर्णय किया.
इस ब्लॉग पोस्टों को एक त्वरित तथा कुशल साइट बनाने के लिए पूर्ण कैशिंग जोड़ने के साथ यह जाता है.
देखें ब्लॉग सेवा स्रोत: कैसे यह लागू किया जाता है के लिए, यह वास्तव में आसान है मैं मेमोरी कीश का उपयोग करना.
[विषय
मैंने फैसला किया कि मैं एक टैग मददकर्ता का इस्तेमाल करूँगा ताकि वह इन चीज़ों को सही तरीके से इस्तेमाल कर सके । यह paning तर्क को दोहराने का एक महान तरीका है और इसे फिर से बनाने का. यह उपयोग करता है डारेल ओ 'ललललल से paradation टैग सहायक यह परियोजना में एक परमाणु पैकेज के रूप में शामिल है.
तब यह जोड़ा जाता है _दृश्य आयात करता है.
@addTagHelper *,PaginationTagHelper.AspNetCore
में _ब्लॉगिंग सूची. sclutml आंशिक दृश्य मैं ने निम्न कोड जोड़ दिया कि paning सुविधा देने के लिए.
<pager link-url="@Model.LinkUrl"
hx-boost="true"
hx-push-url="true"
hx-target="#content"
hx-swap="show:none"
page="@Model.Page"
page-size="@Model.PageSize"
total-items="@Model.TotalItems" ></pager>
यहाँ कुछ उल्लेखनीय बातें:
link-url
यह टैग सहायक को स्विचिंग कड़ियों के लिए सही यूआरएल बनाने देता है. घर नियंत्रण इंडेक्स पद्धति में यह उस कार्य के लिए सेट किया जाता है । var posts = blogService.GetPostsForFiles(page, pageSize);
posts.LinkUrl= Url.Action("Index", "Home");
if (Request.IsHtmx())
{
return PartialView("_BlogSummaryList", posts);
}
और ब्लॉग नियंत्रक में
public IActionResult Index(int page = 1, int pageSize = 5)
{
var posts = blogService.GetPostsForFiles(page, pageSize);
if(Request.IsHtmx())
{
return PartialView("_BlogSummaryList", posts);
}
posts.LinkUrl = Url.Action("Index", "Blog");
return View("Index", posts);
}
यह है कि नीचे सेट कर दिया जाता है. यह निश्चित करता है कि भेंटन सहायक या तो ऊपरी स्तर विधि के लिए काम कर सकता है ।
hx-boost
, hx-push-url
, hx-target
, hx-swap
ये सभी HMAX गुण हैं जो HMMX के साथ काम करने की अनुमति देते हैं.
hx-boost="true"
hx-push-url="true"
hx-target="#content"
hx-swap="show:none"
यहाँ हम उपयोग hx-boost="true"
यह प्रोग्रेसन टैग सहायक को स्वीकार करने की अनुमति देता है जिसमें यह सामान्य यूआरएल पीढ़ी है तथा मौजूदा यूआरएल के प्रयोग से किसी भी संशोधन की आवश्यकता नहीं है.
hx-push-url="true"
यह सुनिश्चित करने के लिए कि यूआरएल ब्राउज़र के इतिहास में बदला गया है (जो कि पृष्ठों पर सीधे लिंक की अनुमति देता है).
hx-target="#content"
यह वह लक्ष्य है जो कि नई सामग्री से बदल दिया जाएगा.
hx-swap="show:none"
यहाँ पर छवि के संतृप्ति समायोजन को सेट करें. इस मामले में यह सामान्य 'पाम्प' प्रभाव को रोक देता है जिसे HMMAX सामग्री पर उपयोग करता है.
मैंने मुख्य शैली भी जोड़े अपने /scss डिरेक्ट्री में मुझे playssssss का उपयोग करने की अनुमति दे रही है prols लिंक के लिए scents.
.pagination {
@apply py-2 flex list-none p-0 m-0 justify-center items-center;
}
.page-item {
@apply mx-1 text-black dark:text-white rounded;
}
.page-item a {
@apply block rounded-md transition duration-300 ease-in-out;
}
.page-item a:hover {
@apply bg-blue-dark text-white;
}
.page-item.disabled a {
@apply text-blue-dark pointer-events-none cursor-not-allowed;
}
page
, page-size
, total-items
सजावटी टैग सहायकों का उपयोग panceing लिंक तैयार करने के लिए किया जाता है.
इन्हें नियंत्रण से आंशिक दृष्टिकोण में भेज दिया गया है ।
public IActionResult Index(int page = 1, int pageSize = 5)
यहाँ पृष्ठ तथा पृष्ठ आकार यूआरएल से पास किए गए हैं तथा ब्लॉग सेवा से कुल वस्तुओं की गणना की जाती है.
public PostListViewModel GetPostsForFiles(int page=1, int pageSize=10)
{
var model = new PostListViewModel();
var posts = GetPageCache().Values.Select(GetListModel).ToList();
model.Posts = posts.OrderByDescending(x => x.PublishedDate).Skip((page - 1) * pageSize).Take(pageSize).ToList();
model.TotalItems = posts.Count();
model.PageSize = pageSize;
model.Page = page;
return model;
}
यहाँ हम कैश से पोस्ट प्राप्त करते हैं, उन्हें तिथि से आदेश देते हैं और फिर पृष्ठ के लिए पोस्ट की सही संख्या लेते हैं ।
यह साइट के लिए एक सरल अतिरिक्त था लेकिन यह इसे और अधिक प्रयोग करता है । इस साइट में और ज़्यादा जावास्क्रिप्ट जोड़ने के दौरान, HMX संयोजन इस साइट को अधिक प्रतिक्रियाशील महसूस करता है.