2012-02-13 2 views
2

Я знаю, что можно установить свойство отображения в «none» и переключить его с помощью jquery, но в конечном итоге объект все еще загружен, просто не отображается. Есть ли способ предотвратить загрузку элемента, чтобы сохранить время загрузки? Я использую приведенный ниже код для переключения свойств css, но я хочу, чтобы он не загружал элемент вообще.предотвращает загрузку объекта DOM

JS

var ua = navigator.userAgent.toLowerCase(); 
var isAndroid = ua.indexOf("android") > -1; 
if(isAndroid) { 
    $(".startb").css({"display":"inline-block"}); 
    $(".flashObj").css({"display":"none"}); 
} 
else { 
    $(".startb").css({"display":"none"}); 
    $(".flashObj").css({"display":"inline-block"}); 
} 

мои элементы

<div class="startb"><a href="Audio/004_IAM_God_is_Love.mp3"><img src="dbs/images/start.png" width="40" height="40" /></a></div> 

<div class="flashObj"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="200" height="20"> 
      <param name="movie" value="dbs/js/singlemp3player.swf?file=Audio/004_IAM_God_is_Love.mp3&autoStart=false&backColor=000000&frontColor=ffffff&songVolume=90" /> 
      <param name="wmode" value="transparent" /> 
      <embed wmode="transparent" width="200" height="20" src="dbs/js/singlemp3player.swf?file=Audio/004_IAM_God_is_Love.mp3&autoStart=false&backColor=000000&frontColor=ffffff&songVolume=90" 
      type="application/x-shockwave-flash" /> 
      </object></div> 
+1

Вы имеете в виду для встроенных/связанных носителей? Например, видеоролики/изображения на YouTube? –

ответ

1

Вы можете удалить его со страницы:

$(".startb").remove(); 

Но он все равно будет загружен, а затем удаляется.
Так вместо того, чтобы удалить его, когда не требуется, создать его при необходимости ...

+0

Причина, по которой я делаю это, заключается в том, что загрузка большого количества элементов flash на странице жестко на планшет. Для планшетов я просто буду ссылаться на файл .mp3 вместо флеш-плеера. – Blainer

+0

@Blainer. Поэтому вместо того, чтобы удалять его, когда это не нужно, создайте его, когда это необходимо ... – gdoron

+2

да, это путь – nodrog

4

Dont положить элемент на странице и создать его, когда вам это нужно.

Если у вас есть html-элемент в html, то его уже есть. Это не должно быть большой нагрузкой, если у вас нет многочисленных версий элемента.

+0

Не помещать элемент '' на страницу не помешает его загрузке. http://stackoverflow.com/a/9267835/20394 –

+0

Извините mike, обратите внимание, что вы имеете в виду, что это двойной отрицательный? – nodrog

+0

, если вы создаете элемент '' и назначаете его' src', он будет загружаться независимо от того, что вы делаете. Вы можете поместить его на страницу, оставьте ее на странице, независимо от того, браузер все равно запросит 'src'. –

2

Поместите это в конце файла HTML:

<script type="text/template" id="myContent"> 
    <div>content</div> 
</script> 

Затем добавьте элемент вроде этого:

$('#myContent').appendTo('body'); 

К этому вы экономите время, которое визуализирует элемент. Но все равно вам нужно скачать html. Другой способ сделать это - загрузить контент AJAX.

0

No.

Некоторые виды элементов нагрузки независимо от того, что вы делаете.

0

Чтобы загрузить части DOM, вы можете использовать серверный язык, такой как PHP. Хотя это не всегда вариант, он гораздо надежнее, чем клиентский сценарий. Недостатком является то, что отладку может быть сложнее.

0

Предположим, что на вашей странице есть элемент div.

<div id="containerDiv"> 
</div> 

Вы можете добавить свои элементы на странице загрузки с помощью метода $("#containerDiv").append(). Однако я не вижу причины, почему вы не делаете этого на стороне сервера.

0

Вы можете использовать AJAX загрузку следующим образом, но вы должны разделить затем на три различных HTML-файлов и один файл JS

JS

var ua = navigator.userAgent.toLowerCase(); 
var isAndroid = ua.indexOf("android") > -1; 
if(isAndroid) { 
$("#container").empty(); 
$("#container").load("startb.html"); 

} 
else { 
$("#container").empty(); 
$("#container").load("flashObj.html"); 
} 

startb.html

<div class="startb"><a href="Audio/004_IAM_God_is_Love.mp3"><img src="dbs/images/start.png" width="40" height="40" /></a></div> 

flashObj ,HTML

<div class="flashObj"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="200" height="20"> 
      <param name="movie" value="dbs/js/singlemp3player.swf?file=Audio/004_IAM_God_is_Love.mp3&autoStart=false&backColor=000000&frontColor=ffffff&songVolume=90" /> 
      <param name="wmode" value="transparent" /> 
      <embed wmode="transparent" width="200" height="20" src="dbs/js/singlemp3player.swf?file=Audio/004_IAM_God_is_Love.mp3&autoStart=false&backColor=000000&frontColor=ffffff&songVolume=90" 
      type="application/x-shockwave-flash" /> 
      </object></div> 

И ваш сайт:

<div id="container"></div> 

Пожалуйста, скажите мне, если вам нужна дополнительная помощь?

Смежные вопросы