0

我有一个安装了 symfony 3.4 的 php 服务器,我制作了一个应用程序,人们可以在其中连接并发送订单使用制表符。一切在 PC 和所有其他移动设备(如(iphone)上)都很好用,但在 ipad 上不起作用。我真的不知道为什么。我在网上发现 ipad 的缓存和 AJAX 调用有问题,但我不知道如何在制表符配置上停用缓存。

那是制表符初始化(我已经删除了列和回调列表,因为它真的很长,它们适用于所有其他系统,所以我认为这不是问题):

 table = new Tabulator("#tabellaOrdinazione", {
    height: ($(window).height() - $("#inizioContenuti").position().top) + "px",
    ajaxURL: Routing.generate('agente_ordine_nuovo_lista_ajax', {
                codiceCliente:  $("#codiceClienteTxt").val()
            }),
    ajaxProgressiveLoad:"scroll",
    ajaxProgressiveLoadScrollMargin:300,
    ajaxFiltering:true,
    ajaxSorting:true,
    layout:"fitDataFill",
    placeholder: "No data!",
    columns:[

编辑:我刚刚尝试使用无缓存的附加代码更改缓存,但结果是相同的。在除 iPad 之外的所有设备上工作

 table = new Tabulator("#tabellaOrdinazione", {
            height: ($(window).height() - $("#inizioContenuti").position().top) + "px",
            ajaxURL: Routing.generate('agente_ordine_nuovo_lista_ajax', {
                        codiceCliente:  $("#codiceClienteTxt").val()
                    }),
            ajaxProgressiveLoad:"scroll",
            ajaxProgressiveLoadScrollMargin:300,
            ajaxFiltering:true,
            ajaxSorting:true,
            ajaxConfig: {
                cache: 'no-cache',
                credentials: 'same-origin'
            },
            layout:"fitDataFill",
            placeholder: "No data!",
            columns:[

4

2 回答 2

0

该问题可能是由于 iPad 上缺乏获取兼容性,

您是否尝试过在 Tabulator 库之前包含Fetch Polyfill

于 2018-11-04T10:21:48.420 回答
0

我已经用 JQUERY Ajax 解决了我的问题。我已经覆盖了 Tabulator 的请求承诺,并且我添加了一个 JQUERY ajax 来从我的服务器加载数据,现在 ipad 也可以工作了。

这是代码:

function ottieniDatiRicerca(url, config, params){
            //url - the url of the request
            //config - the ajaxConfig object
            //params - the ajaxParams object

            //return promise
            return new Promise(function(resolve, reject){
               $.ajax({
                    type: "GET",
                    dataType: 'html',
                    url: url + "?params=" + encodeURI(JSON.stringify(params)),
                    async: true,
                    success: function (response) {
                        resolve(JSON.parse(response));
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        reject("Status: " + textStatus);
                    }
                });
            });
        }

        function inizializzaTabulator(){
            table = new Tabulator("#tabellaOrdinazione", {
            height: ($(window).height() - $("#inizioContenuti").position().top) + "px",
            ajaxURL: Routing.generate('agente_ordine_nuovo_lista_ajax', {
                        codiceCliente:  $("#codiceClienteTxt").val()
                    }),
            ajaxProgressiveLoad:"scroll",
            ajaxProgressiveLoadScrollMargin:300,
            ajaxFiltering:true,
            ajaxSorting:true,
            ajaxRequestFunc:ottieniDatiRicerca,
            layout:"fitDataFill",
            placeholder: "No data!",
            columns:[

于 2018-11-03T20:29:21.933 回答