2011-09-12 11 views
7

मान लें कि मेरे पास दो accordion टैब हैं। पहला व्यक्ति सैकड़ों छवियों को लोड करता है और पृष्ठ लोड होने पर खुला होता है।क्या छवि के स्रोत विशेषता को बदलना छवि को डाउनलोड करने से रोकता है?

मैं छवियों को दूसरे accordion टैब पर क्लिक करने पर डाउनलोड करने से रोकने में सक्षम होना चाहता हूं। जेएस के माध्यम से छवियों के स्रोत विशेषताओं को बदलना छवियों को डाउनलोड करने से रोक देगा? या अनुरोध पूरा होने तक जारी रहें और पृष्ठ पर दिखाई न दें?

+0

क्या आपके पास ऐप ऑनलाइन है? पता लगाने के लिए फ़िरूबग का उपयोग करें या बस हमें लिंक दें और हम जांच सकते हैं ... मैं भी जवाब जानना चाहता हूं :) – Tarek

+0

आप इसे अभी भी कोशिश कर सकते हैं मुझे लगता है ... –

+0

मुझे विश्वास है कि यह उन्हें रोकता है लेकिन मैं हूं 100% नहीं मैंने कुछ समय पहले लिखा था जो थंबनेल के रूप में बहुत सी छवियों को लोड करता है और जब मैं लोड हो रहा हूं तो मैं डोम में हेरफेर करता हूं। मैं वास्तव में दोबारा जांच करने के लिए नहीं सोचता था, लेकिन मुझे अलग इंप्रेशन मिला कि वे रुक जाएंगे। – jambox

उत्तर

2

मेरे पास एक ऐसी स्क्रिप्ट है जो एसओ लोगो को ठीक उसी 3 सेकंड में लोड करती है जिसे मैंने किसी अन्य प्रश्न के लिए बनाया था।

var img = new Image(); 
img.onload = function() { 
    alert("loaded"); 
}; 
img.src ="http://alexturpin.net/slowimage/slowimage.php"; 

setTimeout(function() { 
    img.src = ""; 
}, 1000); 

http://jsfiddle.net/Xeon06/RrUvd/1/

मैं क्या इकट्ठा से, क्रोम में, onload निकाल दिया नहीं है, लेकिन ब्राउज़र:

http://alexturpin.net/slowimage/slowimage.php

यह का उपयोग करना, मैं इस समस्या पुन: पेश करने की कोशिश की एक स्पिनर दिखाना जारी रखता है और यदि मैं नेटवर्क टैब पर जाता हूं और अपनी छवि ढूंढता हूं और इसकी सामग्री जांचता हूं, तो यह वहां है। तो मेरा जवाब कोई होगा, छवि अभी भी कम से कम क्रोम में लोड हो जाती है।

यह एक दिलचस्प समस्या है, मेरा सुझाव है कि आप जितना संभव हो उतने ब्राउज़रों में कोशिश करें और परीक्षण करें और उस पर किसी प्रकार का ब्लॉग पोस्ट लिखें।

+1

यह प्रश्न समाधान खोजने में मदद कर सकता है: http://stackoverflow.com/questions/930237/javascript-cancel-stop-image-requests –

+0

'ऑनलोड' ईवेंट एक अलग समस्या है। – Christian

+1

आईई 9 और एफएफ 6 दोनों छवि अनुरोध को निरस्त करते हैं – pepsi

0

यह सुनिश्चित नहीं है कि यह अन्य टिप्पणियों की तरह ही होगा। लेकिन मैं सुझाव दे सकता हूं कि अच्छी तरह से काम करेगा। मान लें कि सभी छवियां दिखाई नहीं दे रही हैं, बस दिखाई देने पर सही स्रोत विशेषता सेट करें।

तो जब यह दिखाई नहीं दे रहा है और इसे myImage.jpg पर सेट किया गया है, तो इसे myImage.jpg पर सेट करें।

जब आप वर्तमान accordion को बंद करते हैं, तो आप छवि स्रोत को अपने हल्के gif पर फिर से सेट कर सकते हैं। (यह आईपैड के कुछ संस्करणों पर जीसी से संबंधित बग को रोकता है)।

+0

समस्या अभी भी खड़ी है कि अगर यह छवियों को लोड करना जारी रखती है, तो इसे 'myGray.gif' पर सेट करने से भी इसे रोक नहीं पाएगा। –

+0

तो ब्राउज़र को उन्हें पहले स्थान पर लोड करने से रोकें (यदि संभव हो तो)। –

2

आपका ब्राउज़र HTTP प्रोटोकॉल में निर्दिष्ट के रूप में एक विशिष्ट HTTP GET अनुरोध के साथ उस छवि के लिए पूछता है। एक बार यह पूछने के बाद, http सर्वर स्थानांतरण शुरू करता है।

तो, यह ब्राउज़र (http क्लाइंट के रूप में) और http सर्वर के बीच है।

चूंकि http प्रोटोकॉल स्थानांतरण को रद्द करने का विकल्प नहीं लेता है, इसलिए ब्राउज़र को को प्रोग्रामेटिक रूप से कनेक्शन को निरस्त करने के लिए मानक मानक लागू करना चाहिए। लेकिन चूंकि यह किसी भी मानक में निर्दिष्ट नहीं है, मुझे लगता है कि आपको जावास्क्रिप्ट या किसी भी क्लाइंट साइड कोड के साथ ऐसा करने का कोई तरीका नहीं मिलेगा।


आप() सभी अनुरोधों को रोकने के लिए window.stop कोशिश कर सकते हैं, लेकिन व्यक्तिगत नहीं वाले।


आप एक बड़ी छवि के लिए एक अनुरोध को रोकने के लिए चाहते हैं, तो क्या आप कर सकता है एक छिपा iframe के भीतर एक दस्तावेज़ में छवि को लोड है। I12RAME के ​​ ऑनलोड ईवेंट का उपयोग मुख्य दस्तावेज़ में छवि को लोड करने के लिए किया जा सकता है, जिसके द्वारा इसे कैश किया जाना चाहिए (मान लें कि आपके पास ऐसा करने के लिए कॉन्फ़िगर किए गए कैशिंग निर्देश हैं)।

यदि छवि बहुत अधिक समय ले रही है, तो आप IFRAME की सामग्रीविंडो तक पहुंच सकते हैं और उस पर स्टॉप कमांड जारी कर सकते हैं।

आपको कई IFRAME तत्वों की आवश्यकता है क्योंकि एक साथ अनुरोध किया जा सकता है।

से here & here सीधे ले ली।

संबंधित मुद्दे