Ajax栏

在大多数移动应用程序甚至某些桌面应用中,您很可能会通过Ajax调用与服务器进行API通信。 由于这些调用可能需要一两秒以上的时间,因此在进行此类API调用时,最好向用户提供反馈。 QAjaxBar正是在其中帮助您。

QAjaxBar是一个组件,每当正在进行Ajax调用(无论使用什么Ajax库)时,它都会显示一个加载栏(如Youtube)。 也可以手动触发。

TIP

如果您想要一种更简单,更方便的方式为您的用户提供Ajax栏,请查看加载栏插件,它实际上是推荐方式

QAjaxBar API

QAjaxBar



: Boolean
描述
逆转进度方向
: Boolean
描述
跳过Ajax劫持(不是被动的属性)
: Function
描述
过滤哪个URL应该触发start() + stop()
函数格式
(url) => Boolean
参数
: String
描述
被触发的URL
例子
https://some.url/path
返回 <Boolean>
描述
作为参数接收的URL应该触发start()+stop()吗?

用法

QAjaxBar组件自动捕获Ajax调用(除非被告知不这样做)。

下面的示例仅出于演示目的手动触发事件。 此图标设置为显示在页面底部(可用多个位置!),大小为10px(默认值不是这个),并使用自定义颜色。

基础

Basic


<template>
  <div class="q-pa-md">
    <q-ajax-bar
      ref="bar"
      position="bottom"
      color="accent"
      size="10px"
      skip-hijack
    />

    <q-btn color="primary" label="Trigger" @click="trigger" />
  </div>
</template>

请查阅“API”部分中所有可以使用的属性。

Ajax过滤器

如果你想让QAjaxBar只对某些URL触发(而不是像默认行为那样对所有URL触发),那么你可以使用hijackFilter属性:

<template>
  <q-ajax-bar :hijack-filter="myFilterFn" />
</template>

<script>
export default {
  methods () {
    myFilterFn (url) {
      // example (only https://my-service.com/* should trigger)
      return /^https:\/\/my-service\.com/.test(url)
    }
  }
}
</script>

提示

  • 如果使用Ajax Bar同时捕获多个事件,则只会触发一次“@start”和“@stop”:栏开始显示以及隐藏时。

  • 每个Ajax调用在触发时都会进行“start()”调用。 当它结束时,它会调用stop()。 所以,如果你也手动触发QAjaxBar,你必须在每次新事件开始时调用start(),每次事件结束时调用stop()。 QAjaxBar知道可以同时处理多个事件。