FOSS решение по репликации сессии ASP.NET?

Проблема, с которой вы сталкиваетесь, напрямую не связана с fabricjs (ни холстом, ни даже javascript btw), но исходит из ограничений, которые имеют некоторые браузеры (включая Chrome) на максимальной длине для атрибута src привязки Элемент () с атрибутом donwload.

Когда этот предел будет достигнут, тогда единственное, что у вас есть, - это неуправляемая «сетевая ошибка» в консоли; загрузка не удалась, но вы, как разработчик, не можете знать об этом.

Как было предложено в этом (вы отказались от метки-как) duplicate , решение должно либо напрямую получить Blob, если доступно (для холста вы можете вызвать его метод toBlob() или сначала преобразовать ваш dataURI в Blob, а затем создать URL-адрес объекта из этого Blob.

У Fabricjs пока не реализована функция toBlob, поэтому в вашем конкретном случае вам нужно будет сделать это позже. Вы можете найти много сценариев для преобразования dataURI в Blob, один из которых доступен в метод полифония MDN - Canvas.toBlob().

Тогда он будет выглядеть следующим образом:

// edited from https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob#Polyfill
function dataURIToBlob(dataURI, callback) {
  var binStr = atob(dataURI.split(',')[1]),
    len = binStr.length,
    arr = new Uint8Array(len);

  for (var i = 0; i < len; i++) {
    arr[i] = binStr.charCodeAt(i);
  }

  callback(new Blob([arr]));
}

var callback = function(blob) {
    var a = document.createElement('a');
    a.download = fileName;
    a.innerHTML = 'download';
    // the string representation of the object URL will be small enough to workaround the browser's limitations
    a.href = URL.createObjectURL(blob);
    // you must revoke the object URL, 
    //   but since we can't know when the download occured, we have to attach it on the click handler..
    a.onclick = function() {
      // ..and to wait a frame
      requestAnimationFrame(function() {
          URL.revokeObjectURL(a.href);
        });
        a.removeAttribute('href')
      };
    };

dataURIToBlob(yourDataURL, callback);

6
задан Anony-Mousse -Reinstate Monica 15 January 2012 в 13:22
поделиться

4 ответа

BTW Windows Server AppFabric вышел из бета-версии. Это то, что я упоминал в своем предыдущем посте.

Вот ссылка на общедоступную версию; - http://blogs.technet.com/b/appfabric/archive/2010/06/07/windows-server-appfabric-now-generally-available.aspx

какие конкретные функции, по вашему мнению, можно получить на NCache, а не на AppFabric?

1
ответ дан 17 December 2019 в 07:10
поделиться

Что касается Скорости я услышал некоторые большие вещи о том проекте в последнее время. Это находится все еще на этапах разработки и вероятно не прайм-тайме, готовом все же. Но я думаю, что проект имеет твердую опору и станет сильным сформировавшимся продуктом от Microsoft и не уменьшится в эфир как Вы, предсказывают.

Недавно я услышал подкасты от Scott Hanselman и Полиморфный Подкаст относительно Скорости.

2
ответ дан 17 December 2019 в 07:10
поделиться

Хотя Скорость сделала успехи от CTP1 до CTP2, это все еще оставляет желать лучшего. Пройдет некоторое время, прежде чем они обеспечат все важные функции в распределенном кэше и еще дольше прежде чем это будет протестировано на рынке. Я желаю им удачи.

Тем временем NCache уже обеспечивает весь CTP2 и V1 и намного больше функций. NCache является первым, самым сформировавшимся, и самый многофункциональный распределенный кэш в пространстве.NET. NCache является уровнем предприятия распределенный кэш в оперативной памяти для.NET и также обеспечивает распределенное Состояние сеанса ASP.NET. Проверьте его в Распределенном Кэше.

NCache Express является полностью бесплатной версией NCache. Проверьте его в Свободном Распределенном Кэше.

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

Небольшое обновление этой темы для завершения.

Velocity (теперь известный как Windows Server AppFabric) уже выпущен в производство и предлагает отличную платформу распределенного кэширования. Более подробная информация доступна на сайте msdn

http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx

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

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