Answer the question
In order to leave comments, you need to log in
How to properly catch Could not resolve host error in curl_multi php?
Here is the code for asynchronous curl page requests almost from the official documentation:
$urls = array('');
$chm = curl_multi_init();
$tasks = array();
foreach ($urls as $url) {
$ch = curl_init('http://' . $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$tasks[$url] = $ch;
curl_multi_add_handle($chm, $ch);
}
$active = null;
do {
$mrc = curl_multi_exec($chm, $active);
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && ($mrc == CURLM_OK)) {
if (curl_multi_select($chm) != -1) {
do {
$info = curl_multi_info_read($chm);
if ($info['msg'] == CURLMSG_DONE) {
$ch = $info['handle'];
$url = array_search($ch, $tasks);
$tasks[$url] = array(
'http_code' => curl_getinfo($ch, CURLINFO_HTTP_CODE),
'content' => curl_multi_getcontent($ch));
curl_multi_remove_handle($chm, $ch);
curl_close($ch);
}
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
$mrc = curl_multi_exec($chm, $active);
}
curl_multi_close($chm);
Answer the question
In order to leave comments, you need to log in
.dropdown {
transition: all .3s ease;
}
dropdown
два состояния:.dropdown {
opacity: 0;
visibility: hidden;
transform: translateY(30px);
}
dropdown
видим: opacity: 1;
visibility: visible;
transform: translateY(0px);
mouseover
, на него вешается класс focus
, который инициирует переход А --> Б:menuitem.mouseover(function(){
this.addClass('focus');
});
.menuitem.focus > .dropdown {
opacity: 1;
visibility: visible;
transform: translateY(0px);
}
mouseout
, этот класс удаляется, причем не сразу, а с задержкой в 300мс, после чего инициируется переход Б --> А:menuitem.mouseout(function(){
id = setTimeout(function(){
this.removeClass(focus);
}, 300);
});
dropdown
предыдущего пункта еще не спрятался (т.к. еще не истекла задеркжка в 300мс), происходит форсированное убирание класса focus
с предыдущего пункта меню, в этом случае п. 3 можно переписать следующим образом:function forceRemoveClass() {
window.clearInterval(id);
prevMenuitem.removeClass('focus');
}
...
menuitem.mouseover(function(){
forceRemoveClass();
this.addClass('focus');
});
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question