फ़िल्टर बार: प्रगति, बग तथा छोटे जीत
परिचय
मैं एक साथ ब्लॉग सूची के लिए एक उचित फ़िल्टर पट्टी लगा रहा हूँ: भाषा, तारीख सीमा, तरह, और pMAX के साथ अवरोधित करती भाषा, और पटती है.
यह अभी बंद है - लेकिन, हमेशा के रूप में, अंतिम 20% है Scrat बिट: तारीख़, कैश, और “क्यों कि स्थानीय रूप से काम करता है लेकिन एक रस्सी के बाद नहीं?यदि आप बहुत सारे कोड तथा आरेखों के साथ गहरा बल चाहते हैं, तो देखें:
/ वेब साइट्स/ फ़िल्टर्ग्रेस
याद रखें कि इस साइट की प्रगति में एक काम है, सामान के इस प्रकार होगा जब आप अपने-अपने-छोटे भोजन खाना खाते हैं!
- टीएल; डीआर
- नया फ़िल्टर पट्टी: भाषा + छांटना + तिथि सीमा
- HMMX आंशिक वर्गीकरण पृष्ठ को तेजी से बनाए रखता है; पीछे/forward कार्य करता है क्योंकि मैं हमेशा अद्यतन किए गए यूआरएल को धक्का देता हूँ
/blog/calendar-daysपंचांग संकेत एक छोटे से यहाँ से आता है - अंत- बिन्दु
- स्थिर: जब भाषा/क्रम में बदला जा रहा हो तो तिथि सीमा सीमा को छोड़ा जा रहा है
- निश्चित रूप से: HMMX स्वेप या प्रसंग परिवर्तन के बाद पंचांग को ताज़ा नहीं कर रहा है
सर्वर कैशिंग अब सभी संबंधित क्वैरी कुंजियों द्वारा बदलता है
- काम अच्छी तरह से
- यूआरएल- प्रथम व्यवहार: सभी सम्पर्क यूआरएल अद्यतन करते हैं; आप फ़िल्टर स्थिति में गहरे लिंक कर सकते हैं
LinkUrlप्रवेश करना वर्तमान फ़िल्टर की रक्षा करता है (ए) - सर्वर पर सेट है
// Server: cache and vary for index
[ResponseCache(Duration = 300, VaryByHeader = "hx-request",
VaryByQueryKeys = new[] { "page", "pageSize", nameof(startDate), nameof(endDate), nameof(language), nameof(orderBy), nameof(orderDir) },
Location = ResponseCacheLocation.Any)]
[OutputCache(Duration = 3600, VaryByHeaderNames = new[] { "hx-request" },
VaryByQueryKeys = new[] { nameof(page), nameof(pageSize), nameof(startDate), nameof(endDate), nameof(language), nameof(orderBy), nameof(orderDir) })]
public async Task<IActionResult> Index(int page = 1, int pageSize = 20, DateTime? startDate = null, DateTime? endDate = null,
string language = MarkdownBaseService.EnglishLanguage, string orderBy = "date", string orderDir = "desc")
{
var posts = await blogViewService.GetPagedPosts(page, pageSize, language: language, startDate: startDate, endDate: endDate);
posts.LinkUrl = Url.Action("Index", "Blog", new { startDate, endDate, language, orderBy, orderDir });
if (Request.IsHtmx()) return PartialView("_BlogSummaryList", posts);
return View("Index", posts);
}
वर्तमान क्वैरी मूल्यों को डिफ़ॉल्ट रूप में चिह्नित करें यदि वर्तमान तथा पोस्ट के साथ उभारे जाने वाले दिनों को बदलता है
- बग मैं स्थिर
- जब भाषा या अनुक्रम स्विच कर रहे हों तो तारीख सीमा बन्द करना
new URL(window.location.href)ठीक करें: से प्रारंभ करें
- जब भाषा या अनुक्रम स्विच कर रहे हों तो तारीख सीमा बन्द करना
langSelect.addEventListener('change', async function(){
const u = new URL(window.location.href);
u.searchParams.set('language', langSelect.value);
u.searchParams.set('page','1');
const [ob,od] = (orderSelect.value||'date_desc').split('_');
u.searchParams.set('orderBy', ob);
u.searchParams.set('orderDir', od);
if(input._flatpickr && input._flatpickr.selectedDates.length===2){
const [s,e] = input._flatpickr.selectedDates;
u.searchParams.set('startDate', s.toISOString().substring(0,10));
u.searchParams.set('endDate', e.toISOString().substring(0,10));
}
applyNavigation(u);
});
और (ऐ रसूल) बस तुम ही कह दो कि जब (उनके हलाक करने के वास्ते) इत्मेनान (का अज़ाब) आ खड़ा हो और खुदा के सिवा किसी को हलाक़ न कर सके
- पंचांग को HMMX स्वेप के बाद ताजा नहीं किया जा सका
fp.redraw()ठीक है: नष्ट/पुनप पर टाइट- बिल्डर, फिर दृश्य महीने के लिए प्रकाश प्राप्त करें तथा कॉल करेंhtmx:afterSwap.
- पंचांग को HMMX स्वेप के बाद ताजा नहीं किया जा सका
; फिर से चालू करें
- कैलेन्डर में लागू नहीं किया जा सका.
<html class>ठीक करें:fp.redraw()और कॉल
- कैलेन्डर में लागू नहीं किया जा सका.
जब यह परिवर्तन होता है.
sequenceDiagram
participant User
participant JS as blog-index.js
participant HT as HTMX
participant S as Server
User->>JS: Change language/order or pick a date range
JS->>JS: Update URLSearchParams, pushState
JS->>HT: htmx.ajax('GET', /blog?...)
HT->>S: GET /blog
S-->>HT: HTML partial (_BlogSummaryList)
HT-->>User: Swap #content
कैसे टुकड़े बात की
- अब भी करने के लिए
- त्वरित तारीख़ (पिछले 7/30 दिन, इस वर्ष)
- भाषा के लिए स्थानीय विटिकर बीज
सीमा चयनक पर कुंजीपटल समर्थन
Finding related posts...