GVKun编程网logo

javascript – jqgrid服务器端错误消息/验证处理(jqgrid unformat)

3

这篇文章主要围绕javascript–jqgrid服务器端错误消息/验证处理和jqgridunformat展开,旨在为您提供一份详细的参考资料。我们将全面介绍javascript–jqgrid服务器端

这篇文章主要围绕javascript – jqgrid服务器端错误消息/验证处理jqgrid unformat展开,旨在为您提供一份详细的参考资料。我们将全面介绍javascript – jqgrid服务器端错误消息/验证处理的优缺点,解答jqgrid unformat的相关问题,同时也会为您带来Android Webview 和 Javascript 交互,实现 Android 和 JavaScript 相互调用、href=“javascript:”vs href=“javascript:void(0)”、JavaScript - 基础入门.0002.JavaScript 快速使用、JavaScript .prototype 如何工作? - How does JavaScript .prototype work?的实用方法。

本文目录一览:

javascript – jqgrid服务器端错误消息/验证处理(jqgrid unformat)

javascript – jqgrid服务器端错误消息/验证处理(jqgrid unformat)

在我的json回复中,我有’STATUS’和’errors’属性.
如何使用这个错误属性与jqgrid.解析所有错误并在对话框中显示.

基本上只是检查,如果状态:’ERROR’然后显示所有错误.

谢谢!

解决方法

在你以前的问题的 the answer的最后一部分,我试着给出你当前的问题的答案.也许我表示不够清楚.

您不应该将错误信息放在标准成功响应中.您应该遵循用于服务器和客户端之间通信的HTTP协议的主要规则.

根据HTTP协议实现网格中的加载数据,编辑行和与服务器的所有Ajax通信.每个HTTP响应都有响应第一行的状态代码.了解这个意义非常重要.

典型的JSON数据成功请求如下

HTTP/1.1 200 OK
...
Content-Type: application/json
...

{"page":"1",....}

如果尝试加载的URL不存在,例如服务器响应的第一行将是

HTTP/1.1 404 Not Found

和基于HTTP状态代码(在这种情况下为404)的jqgrid *将不会尝试将服务器响应解释为包含具有网格内容的数据的数据.

The demo具有以下代码

$("#list").jqgrid({
    url: 'UnkNown.json',// there are no file with the name
    datatype: 'json',// ... some other typical parameters
    loadComplete: function () {
        alert("OK");
    },loadError: function (jqXHR,textStatus,errorThrown) {
        alert('HTTP status code: ' + jqXHR.status + '\n' +
              'textStatus: ' + textStatus + '\n' +
              'errorThrown: ' + errorThrown);
        alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
    }
});

显示警报消息,如下所示:

此外,在jqXHR.responseText中,您会发现服务器响应的全部内容与字符串一样.下一个警报显示响应.

通过上述所有信息,我想向您展示错误响应和成功响应将以您使用的整个软件堆栈(jqgrid,jQuery,XMLHttpRequest对象,…)以其他方式处理.所以你应该在服务器响应中使用error HTTP status codes,如果检测到错误.例如,在the answer中,如果使用ASP.NET MVC,您将看到如何执行此操作.

Here你可以找到另一个版本的loadError实现,等待JSON格式的输入:{“Source”:“一些错误源”,消息:“错误描述”},错误输出将如下所示

但代码可以显示您的Web服务器生成的HTML响应:

您可以轻松地将代码修改为您的目的.你可以在下面找到代码

loadComplete: function () {
    // remove error div if exist
    $('#' + this.id + '_err').remove();
},errorThrown) {
    // remove error div if exist
    $('#' + this.id + '_err').remove();

    // insert div with the error description before the grid
    $(this).closest('div.ui-jqgrid').before(
        '<div id="' + this.id + '_err"><div>' +
            decodeErrorMessage(jqXHR,errorThrown) +
            '</div><div/></div>'
    );
}

其中decodeErrorMessage函数定义为

var decodeErrorMessage = function (jqXHR,errorThrown) {
        var htmlBody,errorInfo,i,errorText = '',errorIconSpan = '<spanhttps://www.jb51.cc/tag/dis/" target="_blank">display: inline-block; margin-right: .3em;"></span>';
        if (textStatus) {
            errorText = textStatus;
        }
        if (errorThrown) {
            if (errorText.length > 0) {
                errorText += '<hr/>';
            }
            errorText += errorThrown;
        }
        if (typeof (jqXHR.responseText) === "string") {
            if (jqXHR.responseText.charat(0) === '[') {
                try {
                    errorInfo = $.parseJSON(jqXHR.responseText);
                    errorText = "";
                    for (i = 0; i < errorInfo.length; i += 1) {
                        if (errorText.length !== 0) {
                            errorText += "<hr/>";
                        }
                        errorText += errorInfo[i].source + ": " + errorInfo[i].Message;
                    }
                } catch (e) { }
                errorText = errorIconSpan + errorText;
            } else {
                htmlBody = /<body.*?>([\s\S]*)<\/body>/i.exec(jqXHR.responseText);
                if (htmlBody !== null && htmlBody.length > 1) {
                    errorText = htmlBody[1];
                }
            }
        } else {
            errorText = errorIconSpan + errorText;
        }
        return '<div>' + errorText + '</div>';
    };

更新:Free jqGrid包含loadError(见here和here)的默认实现,它在大多数Ajax错误的情况下生成相对可读的错误消息.它将生成的文本显示在网格正文之上的错误div中.因此,建议测试,在使用自定义loadError之前,默认行为是否产生良好的结果.如果您真的需要创建自己的loadError,那么可以使用免费jqgrid的displayErrorMessage方法将错误消息放在错误div中:$(“#grid”).jqgrid(“displayErrorMessage”,customErrorMessage);

Android Webview 和 Javascript 交互,实现 Android 和 JavaScript 相互调用

Android Webview 和 Javascript 交互,实现 Android 和 JavaScript 相互调用

在 Android 的开发过程中、遇到一个新需求、那就是让 Java 代码和 Javascript 代码进行交互、在 IOS 中实现起来很麻烦、而在 Android 中相对来说容易多了、Android 对这种交互进行了很好的封装、我们可以很简单的用 Java 代码调用 WebView 中的 js 函数、也可以用 WebView 中的 js 来调用 Android 应用中的 Java 代码。

案例主要包含了:

  1.  Html 中调用 Android 方法
  2. Android 调用 JS 方法无参数
  3. Android 调用 JS 方法有参数
  4. Android 调用 JS 方法有参数且有返回值处理方式 1
  5. Android 调用 JS 方法有参数且有返回值处理方式 2(Android4.4 以上)

1:创建 JS 对象

webView.addJavascriptInterface(new JsInterface(), "obj");
public class JsInterface {
	//JS中调用Android中的方法 和返回值处理的一种方法
		
	/****
          * Html中的点击事件 onclick
	  *  <input type="button" value="结算" onclick="showToast(''12'')">
	  * @param toast
	  */
	@JavascriptInterface
	public void showToast(String toast) {
	  Toast.makeText(MainActivity.this, "你的商品价格是:¥"+toast, Toast.LENGTH_SHORT).show();
	}
}
 function showToast(toast) { 
	var money=toast*3;
	javascript:obj.showToast(money);
}

2:

webView.loadUrl("javascript:funFromjs()");
function funFromjs(){
    document.getElementById("helloweb").innerHTML="div显示数据,无参数";
}

3:

webView.loadUrl("javascript:funJs(''Android端传入的信息,div标签中显示,含参数'')");
function funJs(msg){
   document.getElementById("hello2").innerHTML=msg;
}

4: 

webView.loadUrl("javascript:sum(6,6)");
/***
 * Android代码调用获取J是中的返回值
 * 
 * @param result
*/
   @JavascriptInterface
   public void onSum(int result) { 
	Toast.makeText(MainActivity.this, "Android调用JS方法且有返回值+计算结果=="+result, Toast.LENGTH_SHORT).show();
   } 
function sum(i,m){ 
    var result = i*m; 
    document.getElementById("h").innerHTML= "Android调用JS方法且有返回值--计算结果="+result; 
    javascript:obj.onSum(result) 
} 

5:

 webView.evaluateJavascript("sumn(6,11)", new ValueCallback<String>() {
         @Override
	 public void onReceiveValue(String value) {
	     Toast.makeText(MainActivity.this, "返回值"+value, Toast.LENGTH_SHORT).show();
           }
});
function sumn(i,m){ 
     var result = i*m; 
     document.getElementById("hh").innerHTML= "Android调用JS方法且有返回值--计算结果="+result; 
     return result;
} 

   注意:

1、Java 调用 js 里面的函数、效率并不是很高、估计要 200ms 左右吧、做交互性很强的事情、这种速度很难让人接受、而 js 去调 Java 的方法、速度很快、50ms 左右、所以尽量用 js 调用 Java 方法

2、Java 调用 js 的函数、没有返回值、调用了就控制不到了

3、Js 调用 Java 的方法、返回值如果是字符串、你会发现这个字符串是 native 的、转成 locale 的才能正常使用、使用 toLocaleString () 函数就可以了、不过这个函数的速度并不快、转化的字符串如果很多、将会很耗费时间

4、网页中尽量不要使用 jQuery、执行起来需要 5-6 秒、最好使用原生的 js 写业务脚本、以提升加载速度、改善用户体验。

注:使用的是本地的 Html 文件,不过在网络链接的 Html 文件也是可以实现的。   

源码点击下载

href=“javascript:”vs href=“javascript:void(0)”

href=“javascript:”vs href=“javascript:void(0)”

##href=“javascript:” vs href=“javascript:void(0)”

可参考
http://www.jb51.net/article/37904.htm
http://stackoverflow.com/questions/3666683/href-javascript-vs-href-javascriptvoid0

JavaScript - 基础入门.0002.JavaScript 快速使用

JavaScript - 基础入门.0002.JavaScript 快速使用

常用属性:

属性名称 属性说明
src 表示包含要执行代码的外部文件,常用来引用外部的 js 文件
type 表示代码使用的脚本语言的内容类型

1

2

3

4

5

6

7

8

9

10

11

12

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>]</title>

</head>

<body>

    <script type="text/javascript">

        alert(''Hello Word!'');

    </script>

</body>

</html>

 

注意事项:

1. 如果你想弹出一个 </script> 标签的字符串,内部 js 会误解成 Js 代码的结束,可通过 + 连接分解 </script > 将字符串分为两个部分,但是外部引用的 js 是无需加号拼接的

1

2

3

4

5

6

7

8

9

10

11

12

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<body>

    <script type="text/javascript">

        alert(''</scr'' ''ipt>'');

    </script>

</body>

</html>

2. Js 代码越来越庞大时,最好把它另存为一个.js 文件,通过 src 来引用,这样具有维护性高,可缓存 (加载一次,无需加载), 方便未来扩展的特点

1

2

3

4

5

6

7

8

9

10

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<body>

    <script type="text/javascript" src="js/main.js"></script>

</body>

</html>

3. 对于不支持 JavaScript 平稳的处理方式是通过 <noscript></noscript > 实现?

1

2

3

4

5

6

7

8

9

10

11

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<noscript>此网站必须启用JavaScript支持!</noscript>

</head>

<body>

    <script type="text/javascript" src="js/main.js"></script>

</body>

</html>

 

 

登录乐搏学院官网 http://www.learnbo.com/

或关注我们的官方微博微信,还有更多惊喜哦~

 

 

本文出自 “满满李 - 运维开发之路” 博客,请务必保留此出处 http://xmdevops.blog.51cto.com/11144840/1846116

JavaScript .prototype 如何工作? - How does JavaScript .prototype work?

JavaScript .prototype 如何工作? - How does JavaScript .prototype work?

问题:

I''m not that into dynamic programming languages but I''ve written my fair share of JavaScript code. 我不喜欢动态编程语言,但是我写了相当一部分 JavaScript 代码。 I never really got my head around this prototype-based programming, does any one know how this works? 我从来没有真正了解过这种基于原型的编程,有人知道它是如何工作的吗?

var obj = new Object();
obj.prototype.test = function() { alert(''Hello?''); };
var obj2 = new obj();
obj2.test();

I remember a lot discussion I had with people a while back (I''m not exactly sure what I''m doing) but as I understand it, there''s no concept of a class. 我记得很久以前与人们进行过多次讨论(我不确定自己在做什么),但是据我了解,这里没有一个课堂的概念。 It''s just an object, and instances of those objects are clones of the original, right? 这只是一个对象,这些对象的实例是原始对象的副本,对吗?

But what is the exact purpose of this ".prototype" property in JavaScript? 但是,此 “.prototype” 属性在 JavaScript 中的确切目的是什么? How does it relate to instantiating objects? 它与实例化对象有何关系?

Update: correct way 更新:正确的方法

var obj = new Object(); // not a functional object
obj.prototype.test = function() { alert(''Hello?''); }; // this is wrong!

function MyObject() {} // a first class functional object
MyObject.prototype.test = function() { alert(''OK''); } // OK

Also these slides really helped a lot. 这些幻灯片也确实起到了很大作用。


解决方案:

参考一: https://stackoom.com/question/2P2H/JavaScript-prototype 如何工作
参考二: https://oldbug.net/q/2P2H/How-does-JavaScript-prototype-work

今天关于javascript – jqgrid服务器端错误消息/验证处理jqgrid unformat的分享就到这里,希望大家有所收获,若想了解更多关于Android Webview 和 Javascript 交互,实现 Android 和 JavaScript 相互调用、href=“javascript:”vs href=“javascript:void(0)”、JavaScript - 基础入门.0002.JavaScript 快速使用、JavaScript .prototype 如何工作? - How does JavaScript .prototype work?等相关知识,可以在本站进行查询。

本文标签: