سؤال

وأنا سحب البيانات من قاعدة بيانات مع اياكس وحيوي ملء علامة div مع عناصر الصورة. اسم ملف الصورة يتوافق مع البيانات في قاعدة البيانات.

وعلى سبيل المثال إذا كان هناك شيء في قاعدة بيانات تسمى "فو"، ولقد بند يسمى "IMG / foo.jpg '

وبلدي جافا سكريبت تسحب البيانات ويخلق صورة مع الهلال الأحمر السوداني إذا "IMG / foo.jpg" يحدد الطبقة ومن ثم يكتب في لشعبة الصحيح.

وبالنسبة للجزء الاكبر وهذا يعمل على النحو المنشود، ولكن في بعض الأحيان على تحديث (لدي الاستعلام عن قاعدة بيانات، وتطهير جميع عناصر div، وإعادة كتابة العقد كل 30 ثانية)، وأحيانا بعض الصور سوف كسر / لا يتم تحميلها. ليس هناك قافية أو سبب لأي واحد هو، وأحيانا يحدث ذلك مقابل لا شيء، وأحيانا عدة.

إذا كنت انقر بزر الماوس الأيمن -> صورة تظهر، وتحديث يدويا، أو انتظر لسحب البيانات مرة أخرى، فإنه يعرض صورة على النحو المنشود. لذلك، وأنا أعلم البيانات التي يتم سحبها ومكتوبة بشكل صحيح، ويبدو لمجرد أن يكون عدم تحميل الصورة.

لا أحد يعرف لماذا أو كيف لمعالجة هذه المسألة؟

هل كانت مفيدة؟

المحلول

وجربه في فايرفوكس مع الحرائق الإضافة، مع لوحة صافي تمكين وكنت قد تكون قادرة على معرفة السبب وعمليات الجلب للصور والفشل.

نصائح أخرى

والاعتذار إذا كان هذا لا يمكن أن يكون إجابة جيدة، ولكن إذا كان لديك العديد من الصور على الصفحة الخاصة بك، قد يكون هذا المتصفح (وهذا لا يقتصر على IE6) لم تحميل البيانات لجميع من لهم.

إذا كنت "تطهير جميع عناصر div، وإعادة كتابة العقد كل 30 ثانية" كنت قد واجهت مشكلة في لمح من مسألة دعم Microsoft "<لأ href =" http://support.microsoft.com/kb/ 282402 "يختلط =" نوفولو "> كيف يمكنني تكوين Internet Explorer لتحميل الملفات أكثر من اثنين في وقت واحد؟ ". ومن المحتمل أن يكون لاحظت الصور التي تم تحميلها.

وبدلا من إعادة تحميل جميع الصور معا (بالتوازي)، قد تجد تحديث الصور بشكل متسلسل إلى أن تكون أكثر موثوقية مثل ذلك:

var refreshCount = 0;
function updateImages() {
  var nextImage = refreshCount % document.images.length;
  var image = document.images[nextImage];
  if(image.complete) {
    var newImage = new Image();
    newImage.src = image.src;           
    image.parentNode.insertBefore(newImage,image);
    image.parentNode.removeChild(image);
    refreshCount++;
  }
  setTimeout(updateImages, 1000);
}
// Wait 20 sec before starting the refreshes 
// (gives time to get the images downloaded in the first place)
setTimeout(updateImages, 20000);    
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top