Вы можете вызвать метод get()
в AsyncTask
(или перегруженный get(long, TimeUnit)
). Этот метод будет блокироваться до тех пор, пока AsyncTask
не завершит свою работу, и в этот момент он вернет вам Result
.
Было бы разумно выполнять другую работу между созданием / запуском вашего асинхронного задание и вызов метода get
, в противном случае вы не используете задачу async очень эффективно.
Вместо того, чтобы отображать все слайды, когда JS выключен (который, вероятно, повредил бы макет страницы), я помещу в ЛИТИЯХ переключателя, реальных ссылки на серверный код, который возвращает страницу с "активной" предварительной установкой класса на надлежащем переключателе/слайде.
$(document).ready(function() {
switches = $('#switches > li');
slides = $('#slides > div');
switches.each(function(idx) {
$(this).data('slide', slides.eq(idx));
}).hover(
function() {
switches.removeClass('active');
slides.removeClass('active');
$(this).addClass('active');
$(this).data('slide').addClass('active');
});
});
#switches .active {
font-weight: bold;
}
#slides div {
display: none;
}
#slides div.active {
display: block;
}
<html>
<head>
<title>test</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="switch.js"></script>
</head>
<body>
<ul id="switches">
<li class="active">First slide</li>
<li>Second slide</li>
<li>Third slide</li>
<li>Fourth slide</li>
</ul>
<div id="slides">
<div class="active">Well well.</div>
<div>Oh no!</div>
<div>You again?</div>
<div>I'm gone!</div>
</div>
</body>
</html>
Вот является моя легкая разметка версией jQuery:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function switchTo(i) {
$('#switches li').css('font-weight','normal').eq(i).css('font-weight','bold');
$('#slides div').css('display','none').eq(i).css('display','block');
}
$(document).ready(function(){
$('#switches li').mouseover(function(event){
switchTo($('#switches li').index(event.target));
});
switchTo(0);
});
</script>
<ul id="switches">
<li>First slide</li>
<li>Second slide</li>
<li>Third slide</li>
<li>Fourth slide</li>
</ul>
<div id="slides">
<div>Well well.</div>
<div>Oh no!</div>
<div>You again?</div>
<div>I'm gone!</div>
</div>
Это имеет преимущество показа всех слайдов, если пользователю выключили JavaScript, использует очень мало разметки HTML, и JavaScript довольно читаем. switchTo
функция берет индекс, которого <li>
/ <div>
пара для активации, сбрасывает все соответствующие элементы к их стилям по умолчанию (неполужирный для элементов списка, display:none
для ОТДЕЛЕНИЙ) и наборы желаемое list-item
и div
к bold
и display
. Пока клиенту включили JavaScript, функциональность будет точно тем же как Вашим исходным примером.
Вот версия jQuery:
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(function () {
$("#switches li").mouseover(function () {
var $this = $(this);
$("#slides div").hide();
$("#slide" + $this.attr("id").replace(/switch/, "")).show();
$("#switches li").css("font-weight", "normal");
$this.css("font-weight", "bold");
});
});
</script>
<ul id="switches">
<li id="switch1" style="font-weight:bold;">First slide</li>
<li id="switch2">Second slide</li>
<li id="switch3">Third slide</li>
<li id="switch4">Fourth slide</li>
</ul>
<div id="slides">
<div id="slide1">Well well.</div>
<div id="slide2" style="display:none;">Oh no!</div>
<div id="slide3" style="display:none;">You again?</div>
<div id="slide4" style="display:none;">I'm gone!</div>
</div>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$( '#switches li' ).mouseover(
function(){
$( "#slides div" ).hide();
$( '#switches li' ).css( 'font-weight', 'normal' );
$( this ).css( 'font-weight', 'bold' );
$( '#slide' + $( this ).attr( 'id' ).replace( 'switch', '' ) ).show();
}
);
}
);
</script>
</head>
<body>
<ul id="switches">
<li id="switch1" style="font-weight:bold;">First slide</li>
<li id="switch2">Second slide</li>
<li id="switch3">Third slide</li>
<li id="switch4">Fourth slide</li>
</ul>
<div id="slides">
<div id="slide1">Well well.</div>
<div id="slide2" style="display:none;">Oh no!</div>
<div id="slide3" style="display:none;">You again?</div>
<div id="slide4" style="display:none;">I'm gone!</div>
</div>
</body>
</html>
Единственная вещь это неправильно с этим кодом (по крайней мере, мне) состоит в том, что Вы не используете цикл для обработки всех элементов. Кроме этого, почему не к нему как этот?
И с циклом, я означаю захватывать контейнерный элемент с помощью JQuery и выполнять итерации по всем дочерним элементам †“в основном острота.