Good Luck

作者: magic_pill | 来源:发表于2018-09-03 17:07 被阅读23次

概念

HTML以及CSS篇,集中在CSS

说下你常用的几种布局方式,集中往盒模型、flex布局说(至于grid布局,这个我看过没有用到过)
盒模型
  • 盒模型的组成,由里向外 content,padding,border,margin。

  • 在标准模型中,盒模型的宽高只是内容(content)的宽高;

  • 在IE模型中盒模型的宽高是 内容(content) + 填充(padding) + 边框(border) 的总宽高。

  • css如何设置两种模型?这里用到了 CSS3 的属性:box-sizing

/* 标准模型 */
box-sizing:content-box;

 /*IE模型*/
box-sizing:border-box;
  • 工作中,有时会出现给子元素设置 margin-top:50px,出现了“元素向下走50px,子元素和父元素之间并未出现 50px 的间距”,解决方案点这里
flex 布局
实现水平居中的几种方法?
animate和translate有没有用过,一些常见的属性说下?
CSS实现宽度自适应100%,宽高16:9的比例的矩形。
如何实现左边两栏一定比例,左栏高度随右栏高度自适应?

其它

一、JS 变量提升

function Foo() { 
  getName = function () { alert(1); }; 
  return this; 
} 
Foo.getName = function () { alert(2); }; 
Foo.prototype.getName = function () { alert(3); }; 
var getName = function () { alert(4); }; 
function getName() { alert(5); } 

//求以下各表达式的值
Foo.getName(); // ? 
getName(); // ? 
Foo().getName(); // ? 
getName(); // ? 
new Foo.getName(); // ? 
new Foo().getName(); // ? 
new new Foo().getName(); // ?
答案参考

二、Ajax 请求原理解析

AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。
使用 AJAX 的应用程序案例:微博、优酷视频、人人网等等。

发送Ajax请求,使用的是js
五步使用法:
  • 1.创建异步对象:var ajaxObj = new XMLHttpRequest();
  • 2.使用open方法设置请求的参数:
    • ajaxObj.open('get','xxx.php');
    • 参数1为请求的方法,参数2为请求的url;
  • 3.发送请求:(发送请求报文)
    • ajaxObj.send();
  • 4.注册事件:(服务器返回响应报文)
    • 状态改变时就会调用,如果要在数据完成请求回来的时候才调用,我们需要手动的写一些判断的逻辑;
ajaxObj.onreadystatechange = function (){
        //为了保证数据完整回来,我们一般会判断两个值
        if (ajaxObj.readyState==4 && ajaxObj.status==200){
            //在注册事件中,获取返回的内容,并修改页面的显示
        }
}
  • 5.在注册的事件中,获取返回的内容,并修改页面的显示。


    浏览器与服务器的关系
  • 示例代码:GET(get的数据,直接在请求的url中添加即可)
  • html中的代码:
<body>
    <input type="text" class="user">
    <button>发送请求</button>
    <script>
        document.querySelector("button").onclick = function () {
            //1.创建异步对象
            var xhr = new XMLHttpRequest();

            //2.设置method、url等参数
            var userName = document.querySelector(".user").value;
            xhr.open("get","03-XMLHttpRequest.php?name="+userName);

            //3.发送数据
            xhr.send();

            //4.绑定事件
            xhr.onreadystatechange = function () {
                if (xhr.readyState==4 && xhr.status==200){
                    //5.在绑定事件中获取返回的数据,显示页面
                    console.log(xhr.responseText);
                }
            }
        }
    </script>
</body>
  • php中的代码:
<?php
        echo $_GET['name'].",欢迎你";
?>
  • 示例代码:POST
  • 有两点不同
    1.发送的数据写在send方法中;
    2.必须要在open和send之间添加setRequestHeader("Content-type","application/x-www-form-urlencoded");
  • html中的代码:
<body>
    <input type="text" class="user">
    <button>发送请求</button>
    <script>
        document.querySelector("button").onclick = function () {
            //1.创建异步对象
            var xhr = new XMLHttpRequest();

            //2.设置method、url等参数
            xhr.open("POST","03-XMLHttpRequest.php");

            //如果使用post发送数据,必须要添加如下内容,修改发送给服务器的请求报文的内容。form表单使用post发送数据不需要设置,因为form表单默认会进行转换
            xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

            //3.发送请求,发送请求的数据写在send方法中
            //格式 name=jiang & age=18
            var userName = document.querySelector(".user").value;
            xhr.send("name="+userName);

            //4.绑定事件
            xhr.onreadystatechange = function () {
                //5.在绑定事件里获取数据,展示页面
                if (xhr.readyState==4 && xhr.status==200){
                    console.log(xhr.responseText);
                }
            }
        }
    </script>
</body>
  • php中的代码:
<?php
        echo $_POST["name"].",你好";
?>
  • 实际开发中,get和post的选取:
    由后台程序员以文档或者口头形式告知;
    如果不考虑提交文件,那么get/post的作用基本一致,只是写法不同。
实际工作中,使用 jQuery 封装的 ajax
1. jQuery - AJAX load() 方法

jQuery load() 方法是简单但强大的 AJAX 方法。
load() 方法从服务器加载数据,并把返回的数据替换被选元素。

$(selector).load(URL,data,callback);

必需的 URL 参数规定您希望加载的 URL。
可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。
可选的 callback 参数是 load() 方法完成后所执行的函数名称。

2. AJAX get() 方法
  • 从指定的资源请求数据。

语法:$.get(URL,callback);

  • 实例:
$("button").click(function(){
  $.get("demo_test.asp",function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});
  • $.get() 的第一个参数是我们希望请求的 URL("demo_test.asp")。
  • 第二个参数是回调函数。第一个回调参数存有被请求页面的内容,第二个回调参数存有请求的状态。
3. jQuery $.post() 方法
  • 向指定的资源提交要处理的数据。

语法:$.post(URL,data,callback);

  • 实例:
$("button").click(function(){
  $.post("demo_test_post.asp",
  {
    name:"Donald Duck",
    city:"Duckburg"
  },
  function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});
  • $.post() 的第一个参数是我们希望请求的 URL ("demo_test_post.asp")。
  • 然后我们连同请求(name 和 city)一起发送数据。
  • "demo_test_post.asp" 中的 ASP 脚本读取这些参数,对它们进行处理,然后返回结果。
  • 第三个参数是回调函数。第一个回调参数存有被请求页面的内容,而第二个参数存有请求的状态。
4. $.ajax({})方法 (了解)
  • 更多自由的定制性。

语法:jQuery.ajax([settings])
settings:可选。用于配置 Ajax 请求的键值对集合。

  • 示例代码:这里演示的是常用的属性
$.ajax({
        url:'01.php',   //请求地址
        data:'name=fox&age=18',     //发送的数据
        type:'GET',     //请求的方式
        success:function (argument) {},     // 请求成功执行的方法
        beforeSend:function (argument) {},  // 在发送请求之前调用,可以做一些验证之类的处理
        error:function (argument) {console.log(argument);},   //请求失败调用
});

三、 Node.js 创建服务

const express = require('express');

// 新建app
const app = express();

app.get('/',function(req,res){  //访问 localhost:9003
  res.send('<h2>Hello New App</h2>')
})

app.get('/data',function(req,res){  //访问 localhost:9003/data
 res.send('<h2>My baby,come on.</h2>')
})

app.listen(9003,function(){
  console.log('端口为 9003 的服务已启动')
})

相关文章

网友评论

      本文标题:Good Luck

      本文链接:https://www.haomeiwen.com/subject/jtxiwftx.html