Что-то вроде этого для $.ajax
(только HTML5):
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with upload progress here
}
}, false);
xhr.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with download progress
}
}, false);
return xhr;
},
type: 'POST',
url: "/",
data: {},
success: function(data){
//Do something on success
}
});
В настоящее время я делаю это, и это довольно глубокий процесс настройки, но, как только он будет запущен, он пройдет гладко.
Первым шагом является создание структуры папок с тестовыми и рабочими копиями ваших файлов .xlam, для которых вы являетесь администратором.
2-й, в рабочей папке, щелкните правой кнопкой мыши все файлы .xlam и установите атрибуты в свойствах только для чтения. Если вы этого не сделаете, вы никогда не сможете обновить надстройку, если кто-то еще находится в нем.
В-третьих, когда вы вносите обновления в код в файле тестирования, просто замените производственный файл обновленным файлом и снова измените его на «Только чтение». Пользователям нужно будет только закрыть все экземпляры Excel и открыть заново, чтобы получить самую последнюю копию надстройки.
Ниже приведена надстройка администратора, которую я использую для перемещения тестовых файлов в производство.
Sub DeployAddIn()
'Author : Ken Puls (www.excelguru.ca)
'Macro Purpose: To deploy finished/updated add-in to a network
' location as a read only file
Dim strAddinDevelopmentPath As String
Dim strAddinPublicPath As String
Dim FSO As New FileSystemObject
'Set development path
ChDrive "R:"
ChDir "R:\addins\PROJECTS"
strAddinDevelopmentPath = Application.GetOpenFilename()
If strAddinDevelopmentPath = "False" Then
Exit Sub
ElseIf InStr(strAddinDevelopmentPath, "\PRODUCTION\") > 1 Then
If MsgBox("You've Selected a Production File To Replace a Production File. Would You Like To Continue Anyway?", vbYesNo) = vbNo Then
Exit Sub
End If
End If
'Get Desitination path
strAddinPublicPath = Replace(strAddinDevelopmentPath, "TESTING", "PRODUCTION")
'Create dir if it doesn't exist
On Error Resume Next
MkDir Left(strAddinPublicPath, InStrRev(strAddinPublicPath, "\") - 1)
On Error GoTo 0
'Turn off alert regarding overwriting existing files
Application.DisplayAlerts = False
'overwrite existing file
On Error Resume Next
SetAttr strAddinPublicPath, vbNormal
On Error GoTo 0
FSO.CopyFile strAddinDevelopmentPath, strAddinPublicPath, True
SetAttr strAddinPublicPath, vbReadOnly
'Resume alerts
Application.DisplayAlerts = True
End Sub
В-четвертых, я также написал макрос для изменения пользовательской ленты. Приведенная ниже ссылка, кроме того, полезен сайт Рона де Брюина. https://grishagin.com/vba/2017/01/11/automatic-excel-addin-installation.html Код для автоматизации установки надстройки после получения нужного текста из файла officeUI
[ 111]*** ВАЖНО ---- Если вы устанавливаете надстройку вручную, убедитесь, что вы выбрали нет при появлении запроса, если хотите, чтобы файл был сохранен на локальном компьютере. Если вы сохраните его на локальном компьютере, он создаст локальную копию и никогда не будет обновляться, если вы вносите изменения в сетевую копию или хотите исправить ошибку.
Есть и другие советы, но вам в основном нужно будет адаптировать их, чтобы они соответствовали вашей работе. Надеюсь, это поможет.