Я создаю веб-сайт, который пытается декодировать хеши md5 (до 5 символов).
Пользователи могут ввести хеш MD5, который они хотят декодировать, и веб-сайт сначала проверяет, есть ли хеш уже в базе данных.
Сайт: http://webtools.pieterhordijk.com
Хэш в db: fbade9e36a3f36d3d676c1b808451dd7
Хэш не в БД: любая другая строка символов
Если хеша еще нет в базе данных, сайт попытается его расшифровать.
Я хотел бы сделать AJAX-вызов, чтобы проверить, есть ли хэш в БД. Если нет, я хочу отобразить счетчик хода выполнения во время его декодирования на сервере (PHP).
Код, который у меня сейчас есть:
$(document).ready(function() {
$('form.decode').submit(function() {
var form = $(this);
var submit_button = $('input[name="submit"]', this);
var submit_image = $(submit_button).attr('src');
var action = $(this).attr('action');
$('table.result tr').remove();
var html = '';
html+= '<tr>\n';
html+= ' <td><img src="/style/information.png" alt="Information" title="Finding value"></td>\n';
html+= ' <td>'+$('input[name="hash"]', form).val()+'</td>\n';
html+= '</tr>\n';
$('table.result').append(html);
$(submit_button).attr('src', 'style/ajax-loader.gif');
$.ajax({
url: action+'/json',
type: 'POST',
data: ({hash : $('input[name="hash"]', form).val() }),
dataType: 'json',
success: function(data)
{
if (!data.result) {
var html = '';
html+= '<tr>\n';
html+= ' <td><img src="/style/error.png" alt="Error" title="Hash not found in database"></td>\n';
html+= ' <td>Couldn\'t find hash-value in our database!</td>\n';
html+= '</tr>\n';
html+= '<tr>\n';
html+= ' <td><img src="/style/information.png" alt="Information" title="Decoding"></td>\n';
html+= ' <td>Decoding hash (<span class="progress">0</span>%)</td>\n';
html+= '</tr>\n';
$('table.result').append(html);
} else {
var html = '';
html+= '<tr>\n';
html+= ' <td><img src="/style/accept.png" alt="Success" title="Decoded hash"></td>\n';
html+= ' <td>'+data.value+'</td>\n';
html+= '</tr>\n';
$('table.result').append(html);
$(submit_button).attr('src', submit_image);
}
}
});
return false;
});
});
Код слишком длинный для чтения? -> Я просто выполняю AJAX-вызов, чтобы проверить, существует ли хеш, а если его нет, я добавляю строку в таблицу результатов с ходом процесса декодирования (по умолчанию 0%).
Что мне нужно сделать отсюда?
Я думал:
Если хеш не существует, запустите js-функцию, которая вызывает (AJAX) фоновый скрипт, который запускает процесс декодирования.
Фоновый процесс отслеживает свой прогресс, обновляя БД каждые x секунд (primary_key is hash).
js-функция, которая вызывает фоновый процесс, вызывает другую функцию, которая (AJAX) запрашивает прохождение каждые x секунд от сервера до 100%
Однако, прежде чем я начну работать над этим, я хочу знать, является ли это способ сделать это или, возможно, есть способ более умный сделать это.