小编tyl*_*ell的帖子

为什么我的ajax帖子会被截断?

我刚刚更新了我的mvc服务,包括更大的错误和日志记录.我现在有几次这个确切的错误.但无法复制.

Unterminated string. Expected delimiter: ". Path 'Breadcrumbs[18].Params', line 1, position 59740. at Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer(Char quote) at 
Run Code Online (Sandbox Code Playgroud)

每次路径都不同,具体取决于用户发送到服务器的内容.

我的ajax请求通常如下所示:

$.ajax(myURL("SendBreadcrumbs"), {
            type: "POST",
            cache: false,
            data: { telemetry: telemetry.JSONify(), userID: currentUser, isMyVI: isMyVI }
        })
Run Code Online (Sandbox Code Playgroud)

在这些情况下,userID和isMyVI(布尔值)不存在,并且遥测字符串被截断.

JSONify方法如下:

self.JSONify = function () {
    var data = ko.mapping.toJSON(self, TelemetryMapping);
    return data;
}
Run Code Online (Sandbox Code Playgroud)

这是knockoutJSs序列化器.

服务器端:

public void SendBreadcrumbs(string telemetry, string userID = null, bool isMyVI = true)
{
    MyServiceAudit audit;
    Guid UserID;
    if (Guid.TryParse(userID, out UserID))
        audit = InsertAudit(UserID);
    else
        audit = InsertAudit(null);
    try …
Run Code Online (Sandbox Code Playgroud)

c# iis ajax jquery knockout.js

14
推荐指数
1
解决办法
1186
查看次数

什么是我一直得到的这个控制台警告 - 延迟长时间运行的计时器任务以提高滚动平滑度?

我的应用程序是Cordova应用程序.本周我在我的控制台中看到了很多警告:

Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.
Run Code Online (Sandbox Code Playgroud)

本周之前从未见过它.我确实使用了很多settimeouts,因为有些进程非常大,因此不会向用户呈现其处理过程.

// GETS MEDICINES VIA MYCLOUD
function getMedicinesFromServer() {
    // Start Process
    myProcess("Syncing Medicines", true);
    setTimeout(function () {
            var data = getAllModifiedMedicines(viewModel.MedicineCupboard());
            sendAllMedicines(data);
    }, 300);
}
Run Code Online (Sandbox Code Playgroud)

这是误报还是有更好的方法.

这些愚蠢的超时的完整原因是确保用户知道他们何时点击按钮来推送他们知道的数据.

旧方式:

myProcess("Syncing Medicines", true);
var data = getAllModifiedMedicines(viewModel.MedicineCupboard());
sendAllMedicines(data);
Run Code Online (Sandbox Code Playgroud)

不保证向用户呈现该过程.

javascript ajax google-chrome chromium cordova

9
推荐指数
1
解决办法
1万
查看次数

单击JQuery按钮不起作用

我有一个正确运行的JQuery FIddle.它使用JQUERY Steps PlugIn.现在如果你在最后一步运行JQuery FIddle,你会发现三个按钮"Save","Previous"和"Finish".如果我点击,Save button我想显示一条提示"你已被点击".如果您滚动到JSFiddle中HTML部分的底部,您将找到下面的代码.

代码工作正常:

// on Save button click
    $(".actions").on("click",".saveBtn",function(){
      alert("You have been clicked!");
    });
  });
Run Code Online (Sandbox Code Playgroud)

代码无效:

 $( ".saveBtn" ).click(function() {
      alert("You have been clicked");
    });
Run Code Online (Sandbox Code Playgroud)

问题:为什么第二个代码段不起作用?

javascript jquery jquery-steps

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