检查浏览器的XHR和progress-event功能
Check browsers capability of XHR and progress-event
下面这个问题:
jQuery AJAX上传大文本字段的进度
如何使其与旧浏览器兼容?
正如您在上面的问题中看到的,我依赖于XHR和进度事件。现在,对于较旧的浏览器,我需要检测它们是否不具备这些功能之一,以便我可以跳过进度条并仍然制作AJAX-post。
我认为它可以这样工作:
$.ajax({
xhr: function() {
var xhr = $.ajaxSettings.xhr();
if (xhr instanceof window.XMLHttpRequest) {
xhr.addEventListener('progress', function(event) {
if (event.lengthComputable) {
progressPercent = Math.round(event.loaded/event.total*100)+'%';
$loader.width(progressPercent);
}
}, false);
}else{
alert('XHR is no instance of window.XMLHttpRequest');
}
return xhr;
},
type: "POST",
...
但是我不知道这是保存还是还有什么需要检查的
谢谢!
对于接近完全安全的情况,您可以使用try/catch/finally结构:
$.ajax({
xhr: function() {
var xhr = $.ajaxSettings.xhr();
try {
xhr.addEventListener('progress', function(event) {
if (event.lengthComputable) {
$loader.width(Math.round(event.loaded / event.total * 100) + '%');
}
}, false);
}
catch(err) {
//Progess not available
//Take appropriate action - eg hide the progress thermometer
$loader.hide();
}
finally {
return xhr;
}
},
type: "POST",
...
}):
相关文章:
- issue with FB.Event.subscribe
- Angularjs :$routeChangeStart event
- event.prventDefault()持续多久
- jQueryUI Progress Bar
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- KeyDown event for CKeditor
- Javascript events: window.event vs argument reference (funct
- 动态填充Bootstrap选择选择器:change event dos'不起作用
- <td> focusin event .addclass
- event.preventDefault阻止ajax调用
- google.maps.event.addDomListener(window, 'load', fun
- jQuery event.target is_a_child_of(element)
- event.stopPropagation()在firefox javascript中不起作用
- asp.net text onkeyup event
- 如何从ondragend获取正确的event.pageX
- 面料:“;鼠标:向下”;在event.target中未返回对象
- 使用event.target.classlist区分按钮颜色
- event.keycode vs event.which
- 将字符串作为参数传递给函数onclick event jquery
- 检查浏览器的XHR和progress-event功能