मैं वेबसाइट पृष्ठों को एक दूसरे से चिकनाई करना चाहता हूं। तो मैंने $ ('ए') बनाया है। क्लिक करें(); फ़ंक्शन जो जांचता है कि लिंक स्थानीय है, और यदि यह एक लिंक href प्राप्त करता है और इसे शरीर में लोड करता है।jQuery .load() सामग्री लोड होने तक प्रतीक्षा करें
$('a').click(function(){
var href=$(this).attr('href');
$('body').load(href);
return false;
});
यह अच्छा लग रहा है, लेकिन मेरी साइट में भी बहुत सारे जेएस प्लगइन्स शामिल हैं। उन्हें निष्पादित करने में कुछ समय लगता है, और .load
क्रिया पहले 'जेएस' सामग्री द्वारा अपरिवर्तित दिखाती है, और उसके बाद जेएस का पता लगाती है। यह सामग्री के खराब झिलमिलाहट का कारण बनता है।
क्या जेएस के सभी निष्कर्षों के साथ नई सामग्री को कैश करना संभव है, पुराने शरीर को तब तक नहीं बदलना चाहिए जब तक कि यह पूरा नहीं हो जाता है, और जब सभी डीओएम और जेएस नई सामग्री पर किया जाता है, तो स्लाइड पुरानी सामग्री और स्लाइड नई में?
संपादित करें: मुझे लगता है कि बिंदु जेएस निष्पादन का पता लगाने के बारे में नहीं है, लेकिन यह जांचने के बारे में कि क्या सभी अतिरिक्त फाइलें लोड की गई हैं - डीओएम बदलना उसी समय निकाल दिया जाना चाहिए जब $ (विंडो)। नई फाइल का लोड होगा।
[संपादित करें] ------------------------------------------ ----------------------------
इसके लिए मेरा समाधान सीएसएस कोड था (सीएसएस को बनाया गया है इससे पहले सीएसएस लोड हो जाता है) जिसमें क्रॉस-ब्राउज़र अस्पष्टता 0 है।
.transparent{
-moz-opacity: 0.00;
opacity: 0.00;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha"(Opacity=0);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
filter:alpha(opacity=0);
}
और यह आमतौर पर सामग्री के खराब फ़्लिकर से नहीं बल्कि हमेशा नहीं रहता है। अब किसी भी तरह से यह पता लगाना संभव है कि सामग्री jQuery AJAX द्वारा लोड की गई है और कुछ शो टाइमआउट लागू करें। लेकिन वास्तव में सवाल अभी भी खुला है। ।
अब उस सवाल के लिए थोड़ा और अधिक सरल उदाहरण के लिए: उस लिंक पर क्लिक करने के बाद
कैसे ('शरीर') $ के बाद डोम को बदलने शुरू करने के लिए लोड ('something.php') 3000ms आग .load ('something.php') फ़ंक्शन? (लोड करने के तुरंत बाद लोडिंग शुरू होनी चाहिए, लेकिन बाद में डीओएम बदलना शुरू किया जाना चाहिए)
लोड एक कॉलबैक कि पूरा करने के लिए ajax अनुरोध के लिए इंतजार कर रहा है है, तो आप उपयोग कर सकते हैं, और यह [** डॉक्स में सब है ** ] (http://api.jquery.com/load/), यदि आपके प्लगइन में समान कॉलबैक हैं, तो आप उन लोगों का भी उपयोग कर सकते हैं, अन्यथा टाइमआउट शायद सबसे आसान समाधान है। – adeneo