• jquery json ajax


    当html中用script包含了不在同一个目录下的js外部文件(主要是为了通用代码的重用)时,这个js文件的
    内容就如同在当前html文件中了,写jquery的时候不用考虑路径问题,可以直接引用html中的选择器选择元素了。

    input标签是不是一定要放在form表单中?

    • input标签是form的子元素
    • 表单的submit和reset相当于对话框中的“确定”“取消”“重置”等本身带有某些功能的按钮
    • 当要提交包括该input的表单时,就要把该input放在表单form中
    • 反之, 如果你不想提交什么表单,只想把它当作一个按钮使用,执行某个script时,
    • 或者, 你用ajax来提交内容时,input标签可以不用放在form中。

    ajax的load方法 返回的页面类型: 可以是html,也可以是php文件. 默认的是body>*
    同样的ajax.php的路径问题, 这样看: index.js文件相当于"嵌入""包含""如同
    #include"的作用, 你把html文件中包含的js文件扩展开来, 就得到ajax.php同html文件之间的相对路径关系了.

    css隐藏div的两种方法区别:
    display:none: 真正的消除div占用的空间
    visibiliy: hidden, 也不显示,但会占用div本身的空间。
    从none和hidden的字面意思也可以看出它们之间的区别

    js/jquery中的对象?
    原生的javascript的对象,有一种定义方法就是用大括号来定义的:
    var a_js_object = {key1:"val1", key2: 100, key3:"val3"}
    这也正好是json的数据格式. 也是jquery很多方法的参数所需要的类型!

    从jquery的官网下载的jqueryui的版本是v1.11.4, 其自带的jquery.js的版本是v1.10.2
    下载时,即使只用到某个widget,如dialog, 也要下载其他组件,因为这个dialog可能要用到/
    依赖其他相关组件,如draggable droppable sortable等.

    页面代码: 在保证准确/规范的前提下, 尽可能的精简.
    jquery-ui.structure.css: 是关于ui的组件widget的css样式规定

    border样式的推荐顺序写法:

     .ui-widget-content {
    	border: 1px solid #dddddd; //记住这个,是jquery官方的写法.
    	background: #ffffff;
    	color: #333333;
    }
    

    如何使用jquery-ui

    • jquery-ui就是通过jquery.js+css的配合使用, 来实现常见的网页组件如对话框,tab,accordion,datepicker等的效果.
    • 首先得要包含jquery.js这个js core的, 因为在jquery-ui.js中就用到了jquery.js中的函数方法.
    • 然后要包含jquery-ui.js这个ui的jscore文件, 因为在jquery-ui中使用的方法,如dialog(), tab() accordion()方法在jquery.js中是没有的,只有在jquery-ui.js中才有, 如
    • 必须包含jquery-ui.xxx.css的样式表文件, 如果没有这些样式表, 是看不到ui的效果的!
        /*!
         * jQuery UI Dialog 1.11.4
         * http://jqueryui.com
         *
         * Copyright jQuery Foundation and other contributors
         * Released under the MIT license.
         * http://jquery.org/license
         *
         * http://api.jqueryui.com/dialog/
         */
    
        var dialog = $.widget( "ui.dialog", {
    	version: "1.11.4",
    	options: {
    		appendTo: "body",
        ...
        _createTitleBar:function(){...}
    

    三个css文件的区别?

    jquery-ui.css: 是包含了最基本的一些组件和一些background-image和icon等的样式说明;
    jquery-ui.structure.css是包含了较完整的/较详细的组件, 如button, dialog, tabbable, accordion, ui-tabs, ui-tooltip等样式的说明;
    jquery-ui.theme.css是包含了对主题,主要是背景图片/背景位置等的样式的说明
    ### 总之, jquery-ui.css是从jquery-ui.structure.css和jquery-ui.theme.css中抽取最重要/最基本的东西组成的,一般使用jquery-ui.css就可以了!
    ### 经过验证,和查看jqueryui的官方demo也知道, 在demo中确实只用到了一个jquery-ui.css. 其他提供的几个css文件都没有使用!
    
    ## 一般, 在同一行内只写一条完整的/具体的选择器(可能是多个selector), 但是如果有多个,即有逗号的,通常都分行写!
    
    如:
    .ui-button-text-icon-secondary .ui-button-icon-secondary,
    .ui-button-text-icons .ui-button-icon-secondary,
    .ui-button-icons-only .ui-button-icon-secondary {
    	right: .5em;
    }
    

    要去看一看jquery.js& jquery-ui.js中的源代码, 很有好处,就知道它是怎样实现的. 更重要的是: 可以学习和借鉴jqureyui.js对

    jquery的使用的代码的写法本身:jquery官方的jquery代码/js代码都是很好的例子.

    同一图片文件包含多个小图片/小图标的方法:

    首先规定这些规则图片的大小(通常这些图片的大小 都是有规律的, 如果没有就要自己去算).

    /* Icons
    ----------------------------------*/
    
    /* states and images */
    .ui-icon {
    	 16px;
    	height: 16px;
    }
    
    

    然后规定类/id等需要使用的url图片: background-image: url("....");

    .ui-icon,
    .ui-widget-content .ui-icon {
    	background-image: url("images/ui-icons_444444_256x240.png");
    }
    

    然后说明某个图标的位置偏移: background-position: (以向上向右为正,所以相对位置都为 "负值")

    /* positioning */
    .ui-icon-blank { background-position: 16px 16px; }
    .ui-icon-carat-1-n { background-position: 0 0; }
    .ui-icon-carat-1-ne { background-position: -16px 0; }
    .ui-icon-carat-1-e { background-position: -32px 0; }
    .ui-icon-carat-1-se { background-position: -48px 0; }
    .ui-icon-carat-1-s { background-position: -64px 0; }
    .ui-icon-carat-1-sw { background-position: -80px 0; }
    .ui-icon-carat-1-w { background-position: -96px 0; }
    .ui-icon-carat-1-nw { background-position: -112px 0; }
    .ui-icon-carat-2-n-s { background-position: -128px 0; }
    .ui-icon-carat-2-e-w { background-position: -144px 0; }
    .ui-icon-triangle-1-n { background-position: 0 -16px; }
    
    

    现在, 就会有一种感觉,有一种感悟: 写程序就是写英文的文章! 那样你就有感觉了,那样你写的程序

    就可能有一种"优雅"的感觉了, 那么你写程序也就不会感觉那样辛苦那样痛苦, 而是一种如同写作,一种

    写文章, 写散文一样的轻松了. 那么, 这时候, 你的工作, 就如同办公室/行政/官员一样的工作那样轻松愉快了.

    jqueryui 的dialog的autoOpen不要被误解?

    autoOpen通常应该设置成true, 而不要设置成false, 或者其默认的就是true, 可以不去设置它,不管他
    autoOpen是说, 对话框在初始化的时候就显示,还是开始保持hidden, 直到显式的调用open方法才显示
    而不要误解说, 对话框一开始就打开, 即使没有按"触发"按钮. 不是这样的!

    autoOpen 
    Type: Boolean
    Default: true
    If set to true, the dialog will automatically open upon initialization. If false, the dialog will stay hidden until the open() method is called.
    

    jqueryui的方法的特点

    基本上, jqueryui的方法都是用一个关键字来实现的, 如dialog, 在调用属性/方法/事件等的时候, 都是
    通过$("#selector").dialog("属性/方法/事件关键字 ,如 "open")")来实现的, 不是像类对象的$("#sel").open().

    on和upon的区别
    upon和on一般是同义的,可以互用,但是:
    on和upon一般可以通用,但有以下区别:
    ※) 表示日期时一般只用on, 不用upon
    ※) 在某些习语中, upon和on 不能互相替换, 如:upon my word, once upon a time, on no account
    ※) 在句末或分句末的动词不定式后往往用 upon, 不用 on, 如:nothing to defend upon

    $jquery对象和dom对象之间的转换?

    很简单, dom转换成jquery, 加$运算符就可以
    jquery转换成dom, 取数组元素[0]就可以: $("#form")[0].reset(). 不能直接用$("#form").reset().

    target的_blank和_new的区别?

    _blank会始终打开新的链接目标页面
    _new会在第一次打开一个新的链接目标页面, 但是以后就不会再打开了.所以用_new比_blank好.

    如何在jquery中调用表单的提交和重置功能?

    实际上是通过调用表单form的submit方法和reset方法

    buttons: [
    			{
    				text: "登录",
    				click: function(){
    					$("#tchlogin #tchlogin-form").submit(); // 定位到该表单
    					$(this).dialog("destroy");
    				}
    			},
    			{
    				text: "重置",
    				click: function(){
    					$("#tchlogin #tchlogin-form")[0].reset();	
    				}
    			}
    			]
    
    

    jquery的position属性option?

    position表示定位, 那么就要有两个对象, 一个是你要定位的对象, 另一个是你要相对于哪个对象来定位
    my: 要定位的元素, 你当前正在操作的元素的参考点
    at: 参照的目标元素上的参考点
    of: 要参照的目标对象, 就是要相对定位的那个对象. 一般都有default值. 如: tooltip的of: 是the associated target element
    tooltip相关联的那个目标元素. 而dialog的of默认的是当前窗口window. 但是你可以自己另外指定.
    指定of的时候, 可以用: element, selector: 如of: "#some-id" , jquery对象: 如of: $("#some-id")
    collision: 处理位置冲突, 有filp, fit, flipfit, none
    ....
    什么意思呢?
    是说my的参考点对应的水平位置如left,和at目标的参考点指定的水平位置如right对齐.
    my的参考点对应的垂直位置如top,和at目标的参考点指定的垂直位置如bottom对齐.

    还可以指定偏移. 这样,就可以让目标对象在任意位置定位!注意, 偏移offset是指在my, at对齐之后, 再进行偏移 而且, 不管是在my, 还是at后面指定偏移, 效果都是一样的: +表示定位对象相右向下偏移, 反之同理.

    jquery的position和jqueryui的position方法?

    前者的position方法只能获得对象"相对于父元素"的位置 var pos=$('#id').position(); alert(pos.left);
    后者是jqueryui的position, 则是定位对象的:

    $("#id").position({
    my: "left+3, bottom-2",
    of: event
    });
    
    $( document ).mousemove(function( event ) {
      $( "#position4" ).position({
        my: "left+3 bottom-3",
        of: event,
        collision: "fit"
      });
    

    $(window)和$(document)之间的区别?

    http://www.jb51.net/article/21628.htm
    总之, 就是$(window)是等到所有的元素(包括图片)都加载完成后,才执行.
    而$(document)是只要等到dom结构图绘制完成后就执行.
    通常用$(document), 只有在某些特殊的情况下, 需要等到某些图片加载完成后,才开始执行js脚本的, 用$(window).

    php转义html特殊字符的函数?

    htmlspecialchars: 顾名思义, 只是将几个特殊的html符号(&,单双引号, 大于小于)转换成html的实体(只有字面值), 使其没有html的元素功能
    htmlentities: 顾名思义, 就是将所有的html符号都转换成实体: 如<> 转换成大于小于符号, 不再具有元素标签的意思, 转换所有的html符号,包括不能识别的中文字符...
    通常使用 htmlspecialchars函数就足够了

    html符号转换的目的, 是为了安全, 不会构成sql注入攻击威胁.

    为什么不要使用eval?

    为什么不要使用eval?
    绝对不要使用 eval,任何使用它的代码都会在它的工作方式,性能和安全性方面受到质疑。如果一些情况必须使用到 eval 才能正常工作,首先它的设计会受到质疑,这不应该是首选的解决方案, 一个更好的不使用 eval 的解决方案应该得到充分考虑并优先采用。

    只要知道写 JavaScript 代码当使用 eval 时,存在这个问题就行,毕竟现在直接用 JavaScript 库比较多,安全性能好很多。

    这是因为eval是一个能够解析js代码的函数。所以如果有人恶意在JSON的数据中插入恶意代码,比如修改表单提交的地址。
    eval 也存在安全问题,因为它会执行任意传给它的代码, 在代码字符串未知或者是来自一个不信任的源时,绝对不要使用 eval 函数。

    eval 一般也较慢,因为它必须调用 JS 解释器,而很多其他构造方法都被现代 JS 引擎所优化。
    定时函数 setTimeout 和 setInterval 都可以接受字符串作为第一个参数。但是这个特性绝对不要使用,因为它们在内部使用了 eval。

    在纯的php中要输出html和js代码, 可以直接用echo "...." echo <<<eot....eot,这样是很方便的.

    php利用$_SESSION传递值?

    SESSION机制: 是进程级别的, 位于服务器端. 而且对每个用户都是独立的, 互不干扰的.

    使用Session变量传值是一种最常见的方式,不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失
    方法是:直接用就行了
    第一页:Session["UserID"]= "123";
    第二页: string sUserID = (string)Session["UserID"];

    如何禁止通过url直接访问某些页面, 如登录验证页面?

    方法是通过$_SESSION. 中login.php页面定义$_SESSion, 然后在要避免直接url访问的页面, 通过判断$_SESSION['标识变量'] 是否设置
    来禁用直接访问.

    php有"全局变量"吗?

    php的全局变量跟C/ C++ 中的不同!
    c/C++在一个文件内, 凡是在函数的外面定义的变量, 就叫做全局变量. 这个全局变量通过extern可以扩展到多个文件域:
    在多个不同的文件域之间使用.

    而php的所谓的全局变量和超全局变量, 都是在一个文件域而言的. 都只能是在一个文件内来说的. 不能被多个文件所使用.文件和文件间是不能

    共享/传递变量值的,因为: <font color="red">C在Link的时候会把多个obj连在一起,它知道用extern的在别的模块中,只会在link时的别的模块中找,但php是解释执行的,<strong>一次只能处理一个文件, 或者说php解释器鼠目寸光, 一次只看得到一个文件</strong>它如何知道此变量在哪个文件中定义? 不可能把机器上的.php文件全部翻出来看吧,你可以用include()或是require()把定义变量的文件包含进来.</font>
    

    实际上, php的全局变量并不是真正的"全局"变量, 不是C语言意义上的"全局"变量.

    php的全局变量是指一个php文件内, 在函数外面, 通常在文件开始部分定义的变量. 因为php的全局变量和函数内部是完全隔离的,(不像c语言)

    所以要在函数内部使用外部的所谓的全局变量时,必须在函数内部声明 global $outer_var;

    而超全局变量的概念, 仍然不是指页面间可以使用的变量, 是指不必使用global进行声明, 就可以在函数内部和函数外部都可以使用的变量,

    通常就是指: $GLOBALS, $_POST, $_GET等等.

    .

    因此, 要想某个变量在所有页面内都可以使用。建议用COOKIE 或SESSION.

    你用inclued或者require包含定义变量的文件,就可以使用了。

    php中没有基于整个网站的全局变量,一般用数据库的替代方案:

    通过在一个页面内修改变量,然后存储到数据库的某个表中
    然后, 另一个页面去访问数据库的这个表中的这个变量...
    这样, 就通过 数据库 的 表 中的字段起到了 中间媒介 的作用!
  • 相关阅读:
    [已解决]报错:Failed to restart network.service: Unit network.service not found
    [已解决]PostgreSQL报错:cannot begin/end transactions in PL/pgSQL解决方法
    Navicat连接Hive
    [已解决]报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    [已解决]报错:Unknown system variable 'query_cache_size'
    [已解决]报错: Unable to load authentication plugin 'caching_sha2_password'.
    python小练习
    Oracle消除重复记录的几种方式
    Android支持ARM架构软件包安装Genymotion-ARM-Translation_for_8.0
    Centos7上安装DBDIFF
  • 原文地址:https://www.cnblogs.com/bkylee/p/5195122.html
Copyright © 2020-2023  润新知