Zastanawiam się, czy mogę użyć jQuery wewnątrz pliku web worker. Google Chrome podaje mi ten błąd: "Uncaught ReferenceError: $ is not defined".HTML Web Worker i Ajax jquery call
Oto kod: Plik nadrzędny:
var loader = new Worker(BASE_URL + "js/rss_loader_worker.js");
// Ask the worker to start loading the RSS from the server
loader.postMessage("loadRss");
// When receive the response from the server
loader.onmessage = function (event) {
console.log(event.data);
}
Plik pracownik:
onmessage = function (event) {
if (event.data === "loadRss") {
loadRss();
}
}
/**
* This function handles the AJAX request to the server side
* then pass the content to the view page
* @param none
* @return html text
*/
loadRss = function() {
$.ajax({
data: {city: CITY_LOCATION},
url: BASE_URL + "/getfeeds",
onsucess: function (data) {
}
});
}
Proszę o pomoc, dziękuję :)
importScripts ("jquery.js"); nie może działać: jQuery używa zmiennej "window", która nie jest dostępna dla pracowników sieci. Ale możesz użyć innej biblioteki, która wykona zadanie =) –
Aby być czystym dla wyszukiwarek przychodzących, możliwe jest i często korzystne uruchamianie żądań ajaxowych z 'Worker'. Po prostu nie z tradycyjnym 'jQuery', ponieważ' jQuery' jest biblioteką manipulacji DOM, a pracownicy sieci mają 'WorkerGlobalScope', a nie' Window', a zatem nie mają dostępu do dokumentu lub DOM. – buley