Рассмотрение N2 CMS, но взволнованный по поводу производительности. Это выравнивается по ширине?

Поскольку предыдущие два ответа работают только для dataURL, у которых есть данные base64, и поскольку на этот ответ ссылались более общие вопросы, связанные с «сетевыми ошибками» из-за слишком больших атрибутов href, вот код, который я использую :

// must be called in a click handler or some other user action
var download = function(filename, dataUrl) {
    var element = document.createElement('a')

    var dataBlob = dataURLtoBlob(dataUrl)
    element.setAttribute('href', URL.createObjectURL(dataBlob))
    element.setAttribute('download', filename)

    element.style.display = 'none'
    document.body.appendChild(element)

    element.click()

    var clickHandler;
    element.addEventListener('click', clickHandler=function() {
        // ..and to wait a frame
        requestAnimationFrame(function() {
            URL.revokeObjectURL(element.href);
        })

        element.removeAttribute('href')
        element.removeEventListener('click', clickHandler)
    })

    document.body.removeChild(element)
}


// from Abhinav's answer at  https://stackoverflow.com/questions/37135417/download-canvas-as-png-in-fabric-js-giving-network-error/
var dataURLtoBlob = function(dataurl) {
    var parts = dataurl.split(','), mime = parts[0].match(/:(.*?);/)[1]
    if(parts[0].indexOf('base64') !== -1) {
        var bstr = atob(parts[1]), n = bstr.length, u8arr = new Uint8Array(n)
        while(n--){
            u8arr[n] = bstr.charCodeAt(n)
        }

        return new Blob([u8arr], {type:mime})
    } else {
        var raw = decodeURIComponent(parts[1])
        return new Blob([raw], {type: mime})
    }
}

С помощью этих функций вы можете изменить код на это:

document.getElementById("downloadPreview").addEventListener('click', function() {
  var dataURL = _canvasObject.toDataURL({format: 'png', multiplier: 4})
  download("hellowWorld.png", dataURL)
})
6
задан Gordon Gustafson 4 June 2011 в 22:56
поделиться

3 ответа

Возможно, попробуйте этот вопрос по http://www.codeplex.com/n2/Thread/List.aspx

Они смогли говорить Вам об ограничениях производительности или узких местах.

3
ответ дан 17 December 2019 в 04:54
поделиться

Я попробовал его, и это выглядело многообещающим сначала, но быстро имело проблемы, на самом деле развертывающие его на Среднем Доверительном хосте.

0
ответ дан 17 December 2019 в 04:54
поделиться

http://whocanhelpme.codeplex.com/ и http://www.fancydressoutfitters.co.uk/ основаны на n2cms.

Подробнее читайте в блоге Джеймса Брума http://jamesbroo.me/integrating-n2cms-into-who-can-help-me/

1
ответ дан 17 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: