2014-01-30 181 views
1

我需要使用进度条或加载程序指示器,并在尝试查询Azure时启动该指示器。 这是可能的,以及如何去做。例如查询的,现在你看到我做manualy:如何拦截调用

var client = new WindowsAzure.MobileServiceClient('site', 'key'); 
var dataTable = client.getTable('table'); 
function GetAzureData(){ 
progress.start(); 
dataTable.take(12).where({condition:condition}).read().done(
        function (d) { 
//fill data 
         progress.completed(); 
        }, function (err) { 
         progress.completed(); 
        }); 
} 

但因为我有很多这样的方法我需要拦截这个当我打电话“其中”或“读取” ECT和表演进度(装载机)。

回答

1

您可以将筛选器用于客户端对象,并且这将应用于从客户端发出的所有请求。不幸的是,关于此功能的文档不多,但您可以在this docdocumentation for the MobileServiceClient.withFilter function上看到它的一点点。

为了您的情况下,实施将在一定程度上与此类似:

var client = new WindowsAzure.MobileServiceClient('site', 'key'); 
var clientWhichTracksProgress = client.withFilter(function(request, next, callback) { 
    progress.start(); 
    next(request, function(error, response) { 
     progress.completed(); 
     callback(error, response); 
    }); 
}); 
var dataTable = clientWhichTracksProgress.getTable('table'); 

而且代码的其余部分将是相同的(不调用进度跟踪器)。

更新:我写了一篇博客文章,详细介绍了有关JavaScript的服务过滤器的详细信息,网址为http://blogs.msdn.com/b/carlosfigueira/archive/2014/02/24/using-service-filters-with-the-mobile-services-javascript-sdk.aspx