const debounce = (callback, wait) => {
let timeoutId = null;
return (...args) => {
window.clearTimeout(timeoutId); // повторый вызов отменит предыдущий
timeoutId = window.setTimeout(() => {
callback(...args);
}, wait); // и запустит новый
};
}
const runDebouncedBigArrayOnInputEnds = debounce(
(event) => {
// запускает обработку большого массива в цикле
},
250 // сколько ждать завершения ввода
);
document.getElementById('#myTxtField').addEventListener('input', runDebouncedBigArrayOnInputEnds );
SESSION_DOMAIN=.example.com
// для echo $someProperty;
0000 EXT_STMT
0001 T0 = FETCH_OBJ_R THIS string("someProperty")
0002 ECHO T0
0003 EXT_STMT
// для echo $this->someProperty;
0000 EXT_STMT
0001 T1 = FETCH_OBJ_R THIS string("someProperty")
0002 ASSIGN CV0($someProperty) T1
0003 EXT_STMT
0004 ECHO CV0($someProperty)
0005 EXT_STMT
Простая электронная подпись — это комбинация логина и пароля, которая применяется для входа на сайт
$d = Carbon::now(); // использует config('app.timezone')
debug(['NOW',(string)$d->timezone ,$d->toDateTimeLocalString()]);
// использует config('app.timezone') потому что в parse не передана таймзона
$d=Carbon::parse('2024-09-01T16:00:00.000');
debug(['parsed no TZ', (string)$d->timezone,$d->toDateTimeLocalString()]);
$d->timezone('Europe/Moscow');
debug(['set MSK', (string)$d->timezone,$d->toDateTimeLocalString()]);
// TZ указано в строке. НЕ ИСПОЛЬЗУЕТ config('app.timezone')
$d=Carbon::parse('2024-09-01T16:00:00.000Z');
debug(['parsed UTC', (string)$d->timezone,$d->toDateTimeLocalString()]);
$d->timezone('Europe/Moscow');
debug(['set MSK', (string)$d->timezone,$d->toDateTimeLocalString()]);
/**
array:3 [▼
0 => "NOW"
1 => "Europe/Moscow"
2 => "2024-09-02T10:37:14"
]
array:3 [▼
0 => "parsed no TZ"
1 => "Europe/Moscow"
2 => "2024-09-01T16:00:00"
]
array:3 [▼
0 => "set MSK"
1 => "Europe/Moscow"
2 => "2024-09-01T16:00:00"
]
array:3 [▼
0 => "parsed UTC"
1 => "Z"
2 => "2024-09-01T16:00:00"
]
debug
array:3 [▼
0 => "set MSK"
1 => "Europe/Moscow"
2 => "2024-09-01T19:00:00"
]
*/
import { useFuse } from '@vueuse/integrations/useFuse';
const data = ref([]);
const input = ref('')
const found = ref();
fetch('https://fakestoreapi.com/products').then(r => r.json()).then(j => {data.value = j})
const { results } = useFuse(input, data, { matchAllWhenSearchEmpty:false, fuseOptions: { includeScore: true, keys: ['title'] } })
/*<template>
{{ results }}
</template>*/
interface Countable ...
...
class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode {
// не реализует Countable
Сделал проверку перед if (is_countable($array)) {
$dom = new DOMElement('div');
echo var_dump(is_countable($dom));
// bool(false)
Сейчас мне нужно некоторые страницы сайта исключить из кэширования.
"X-CSRFToken"
неправильный заголовок.let csrftoken = getCookie('XSRF-TOKEN');
получает значение. jQuery('#dtp').datetimepicker({
format:'d.m.Y H:i',
scrollInput:false, // не выбирать значение при скроле
timepickerScrollbar:false // скрыть полоску скрола
})
throw new InvalidDataTelegramException(Response::HTTP_UNPROCESSABLE_ENTITY, __('auth.incorrect_telegram');
class Database{
...
public function __construct(){
try {
$this->conn = new PDO($this->dsn,$this->dbuser,$this->dbpass);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST['action']) && $_POST['action'] == 'register'){
die('POST WORK');
// set preloader active
fetch("big_file.zip", { cache: "force-cache" })
.then(response => {
/* close preloader */
return response.blob()
})
.then(blob => {
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
// .....
// a.click()
})
;
<form method="post" action="App1.xyz://authorize"> ...