Для данных изображения мне проще использовать canvas.toBlob
(асинхронный)
function b64toBlob(b64, onsuccess, onerror) {
var img = new Image();
img.onerror = onerror;
img.onload = function onload() {
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
canvas.toBlob(onsuccess);
};
img.src = b64;
}
var base64Data = 'data:image/jpg;base64,/9j/4AAQSkZJRgABAQA...';
b64toBlob(base64Data,
function(blob) {
var url = window.URL.createObjectURL(blob);
// do something with url
}, function(error) {
// handle error
});
Если Вы хотите сделать это независимым от платформы способом, Proc:: Фон является, вероятно, лучшим способом.
Использование Win32:: процесс-> Создает с параметром DETACHED_PROCESS
Perl обеспечивает ветвление () ключевое слово, которое соответствует системному вызову Unix того же имени. На большинстве подобных Unix платформ, где ветвление () системный вызов доступен, ветвление Perl () просто называет его.
На некоторых платформах, таких как Windows, где ветвление () системный вызов не доступен, Perl может быть создан для эмуляции ветвления () на уровне интерпретатора. В то время как эмуляция разработана, чтобы быть максимально совместимой с реальным ветвлением () в уровень программы Perl, существуют определенные важные различия, которые происходят от того, что весь псевдо дочерний элемент ''процессы'' создал этот путь, живой в том же реальном процессе, что касается операционной системы.
Я нашел настоящие проблемы с ветвлением () в Windows, особенно при контакте с Объектами Win32 в Perl. Таким образом, если бы это будет конкретным Windows, я действительно рекомендовал бы посмотреть на библиотеку Thread в Perl.
Я использую это успешно принятие больше чем одного соединения за один раз на веб-сайтах с помощью IIS, и затем с помощью еще большего количества потоков для выполнения различных сценариев внезапно.