小编Lil*_*its的帖子

Cordova jQuery AJAX呼叫在30秒后超时,无论超时设置如何

我正在尝试在Android上执行以下功能以与我正在制造的IoT设备同步:

function NewDeviceFetchDeviceID(){
    strURL = "https://192.168.x.x/.....";

    return $.ajax({
        url: strURL,
        type: 'GET',
        timeout: 90000
    });
}
Run Code Online (Sandbox Code Playgroud)

设备需要一些时间来响应请求(大约45-50秒),因此我需要将超时时间略长于30秒。超时似乎在iOS上有效-如果我将其设置为5秒,它将完成,如果将其设置为90,它将等待整个时间。对于Android,似乎忽略了该参数。

我尝试添加以下到config.xml<platform name="android">没有运气:

<preference name="LoadUrlTimeoutValue" value="90000"/>
Run Code Online (Sandbox Code Playgroud)

我尝试使用小写的“ L”,但还是没有运气:

<preference name="loadUrlTimeoutValue" value="90000"/>
Run Code Online (Sandbox Code Playgroud)

如何在Cordova Android应用中适当增加AJAX请求的超时参数?


更新: 我已经更改了功能,并且确实得到了“超时!!!” 恰好是30秒后的响应:

function TryXHR(){
    try{
        var xhr = new XMLHttpRequest();

        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                alert("ready state = 4");
            }
        };

        strURL = "https://192.168.x.x/......";
        xhr.open("POST", strURL, true);
        xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
        xhr.timeout = 120000; // Set timeout to 120 seconds (120000 milliseconds) …
Run Code Online (Sandbox Code Playgroud)

ajax jquery android cordova

5
推荐指数
1
解决办法
161
查看次数

正则表达式为7位数后跟可选的3个字母

我是正则表达式的新手,我正在尝试使用正则表达式验证数据库中的收据编号.

我们的收据可以采用以下格式:

  • 0123456(Manditory七位数,不多也不少)
  • 0126456a(带一个字母az的七位数)
  • 0126456ab(两位字母az的七位数)
  • 0126456abc(带三个字母az的七位数)

我尝试过使用一堆不同的正则表达式组合,但似乎都没有.现在我有:

(\d)(\d)(\d)(\d)(\d)(\d)(\d)([a-z])?([a-z])?([a-z])?
Run Code Online (Sandbox Code Playgroud)

但这允许超过七位数,并允许超过3个字母.

这是我在Access 2010中的VBA函数,它将验证表达式:

Function ValidateReceiptNumber(ByVal sReceipt As String) As Boolean

    If (Len(sReceipt) = 0) Then
        ValidateReceiptNumber = False
        Exit Function
    End If

    Dim oRegularExpression     As RegExp

'   Sets the regular expression object
    Set oRegularExpression = New RegExp

    With oRegularExpression
'   Sets the regular expression pattern
        .Pattern = "(\d)(\d)(\d)(\d)(\d)(\d)(\d)([a-z])?([a-z])?([a-z])?"

'   Ignores case
        .IgnoreCase = True

'       Test Receipt string
        ValidateReceiptNumber = .Test(sReceipt)

    End With
End Function
Run Code Online (Sandbox Code Playgroud)

regex ms-access vba

3
推荐指数
2
解决办法
8281
查看次数

使用jQuery更改输入框的值后,为什么jQuery UI Datepicker不起作用?

我有一个将信息导入表单的函数.我正在使用jQuery将日期放入输入框.输入框的ID是"depart_date",我试图插入值(让我们说)04/01/2012.

$('input#depart_date').replaceWith('<input class="input_med hasDatepicker" type="text" id="depart_date" name="depart_date" value="04/01/2012">');

这很好用.但是,我失去了我的日期选择器.我甚至试图通过使用来"重新初始化"它

$( "#depart_date" ).datepicker({ minDate: 0});

我只是不明白如何让我的日期选择器回来.

javascript jquery jquery-ui datepicker

2
推荐指数
1
解决办法
741
查看次数

标签 统计

jquery ×2

ajax ×1

android ×1

cordova ×1

datepicker ×1

javascript ×1

jquery-ui ×1

ms-access ×1

regex ×1

vba ×1