Сбой в html формате img для загрузки


Просто для удовольствия, я пытаюсь реализовать "15 головоломок", но с 16 изображениями (из 1 музыкальной фотографии) вместо этого.

Эта штука разбита на 2 скрипта / стороны. 1 скрипт Python CGI, который будет выполнять Last.FM запрос + разбиение изображения на y x Z фрагментов. Когда скрипт python завершает работу, он выводит строку JSON, содержащую расположение (на сервере), расширение и т. д.

{"succes": true, "content": {"nrofpieces": 16, "size": {"width": 1096, "height": 961}, "directoryname": "Mako", "extension": "jpeg"}}

На другой стороне находится комбинация HTML, JS, (CSS), которая будет запрашивать сценарий CGI для изображения.

$(document).ready(function () {
var artiest = $("#artiest")
var rijen = $("#rijen")
var kolommen = $("#kolommen")
var speelveld = $("#speelveld")
var search = $("#search")


$("#buttonClick").click(function () {
    var artiestZ = artiest.val()
    var rijenZ = rijen.val()
    var kolommenZ = kolommen.val()

    $.getJSON("http://localhost:8000/cgi-bin/cgiScript.py", "artiest=" + artiestZ + "&rijen=" + rijenZ + "&kolommen=" + kolommenZ, function (JsonSring) {
        console.log("HIIIIII")
        if (JsonSring.succes === true){
            console.log(JsonSring)
            var baseUrl = "http://localhost:8000/"
            var extension = JsonSring.content.extension
            var url = baseUrl + JsonSring.content.directoryname + "/"
            var amountX = rijenZ 
            var amountY = kolommenZ 

            for (var i = 0; i < amountX; i += 1){
                for (var p = 0; p < amountY; p += 1){
                    console.log("HI")
                    var doc = new Image
                    doc.setAttribute("src", url + JsonSring.content.directoryname + i + "_" + p + "." +extension)
                    document.getElementById("speelveld").appendChild(doc)
                }
            }
        }else {
            // Search failed. Deal with it.
        }
    })
})

})

Где ссылка различных идентификаторов на различные HTML-элементы. (Текстовые поля, кнопки и Div-ы).

Ниже приведен скриншот полной папки, содержащей файлы изображений.

Папка с файлами IMG

А теперь перейдем к делу. Все теги HTML img с src кажутся правильными, но все же. Некоторые изображения не загружаются, а другие-нет. Я также заметил, что все изображения не загружались с интервалом в 2 секунды. Есть ли какой-то тайм-аут, или ну и что?

Результат

Все это выполняется с локальной машины, поэтому скорость диска и процессор не должны реально влиять на этот вопрос. Кроме того, из того, что я понимаю: вызов для создания тегов img и т. д. выполняется в обратном вызове от getJson, то есть он будет выполняться только тогда, когда getJson закончил / получил ответ.

Есть ли у великого сообщества StackOverFlow представление о том, что здесь происходит?

1   2   2016-04-19 22:20:46

1 ответ:

Чтобы поделиться своими знаниями / опытом с великим сообществом StackOverflow,

Небольшая предыстория

Продвинувшись немного дальше в проект, я начал сталкиваться с различными проблемами, начиная от разбора JSON и заканчивая отсутствием заголовков Allow-Control-Allow-Origin: *, что очень затрудняет выполнение запроса Ajax (Client ==> Python CGI).

Тем временем я также начал разрабатывать на своем основном рабочем столе (который по какой-то причине либо имеет огромные проблемы с версиями Python, либо не имеет их). Но из-за того, что терминал на моем рабочем столе, имеющий Python 3.4+, не имел модуля CGIHTTPServer. После небольшого копания я обнаружил, что CGIHTTPServer был переведен в http.сервер, но при запуске обычного старого python -m http.server, я заметил, что скрипт CGI не будет работать. Это просто проявится. Конечно, я забыл вариант -cgi.

Решения

Когда я успешно использовал CGIHTTPServer, у меня были проблемы. Изображения не будут загружаться, как описано выше. Я подозреваю, что модуль просто не мог принять приличное количество запросов. Это означает, что когда внезапно поступят запросы Y x Z, он будет бороться за доставку всех данных. = = > Соединение Отказано.

С момента перехода на python -m http.server -cgi, никаких проблем, что так никогда. В настоящее время работает над загрузочной сеткой для всех этих изображений!

Thx @Lashane и @Ruud.