【技术重温】html之重点(三)

请注意:我们混合了HTML5扩展的标签或控件来描述,从定义上来说,HTML5是HTML4的一个更高一级的版本

部分html5扩展的控件还无法被最新的浏览器完全支持(IE至少要到9以上才支持部分)
    color        //最新浏览器正常支持
    date        //最新浏览器正常支持
    datetime
    datetime-local
    email        //最新浏览器正常支持
    month
    number    //最新浏览器正常支持
    range        //最新浏览器正常支持
    search
    tel
    time
    url            //最新浏览器正常支持
    week

如果对侧重考虑对老版本浏览器的兼容性,还是必要通过js实现

不过,现在很多网站的做法是检测浏览器的版本如果没有达到要求则直接提示浏览器不支持要求用户升级等信息



技术重点021:

input text文本框的默认宽度是 20 个字符。


技术重点022:
表单submit,如果onSubmit相应函数返回false则不会提交
<form action="/demo/demo_form.asp" onSubmit="return false;">
表单submit,如果要正确地被提交,每个输入字段必须设置一个 name 属性。


技术重点023:
GET METHOD最适合少量数据的提交。浏览器会设定容量限制(最好不要超过1024字节)。


技术重点024:
<fieldset> 元素组合表单中的相关数据,fieldset内部的内容都会被包含在同一个框内显示
<legend> 元素为 <fieldset> 元素定义标题。


技术重点025:
<form> 属性的列表:
accept-charset     规定在被提交表单中使用的字符集(默认:页面字符集)。
action     规定向何处提交表单的地址(URL)(提交页面)。
autocomplete     规定浏览器应该自动完成表单(默认:开启)。
enctype     规定被提交数据的编码(默认:url-encoded)。
method     规定在提交表单时所用的 HTTP 方法(默认:GET)。
name     规定识别表单的名称(对于 DOM 使用:document.forms.name)。
novalidate     规定浏览器不验证表单,这里的验证是一些控件本身自带的验证,比如number默认是会验证是否为数字,但如果设置了novalidate,则不会验证
target     规定 action 属性中地址的目标(默认:_self)。


技术重点026:
<datalist> 元素为 <input> 元素规定预定义选项列表。用户会在他们输入数据时看到预定义选项的下拉列表。
<input> 元素的 list 属性必须引用 <datalist> 元素的 id 属性。


技术重点027:

不被识别的控件标签不被显示,但如果包含文本内容,文本内容还是会显示的

<yyy type="xxx" οnclick="alert('Hello World!')">Click Me!</yyy>
另外需要注意,大多数浏览器本身针对即使不认识的标签也是支持onClick事件的



技术重点028:
老式 web 浏览器input控件不支持的输入类型,会被视为输入类型 text。


技术重点029:
html5扩展的属性目前基本都被正常支持(IE 9以上版本)



技术重点030:
disabled 属性规定输入字段是禁用的。
被禁用的元素是不可用和不可点击的。
被禁用的元素不会被提交。



### SQL `UNION ALL` 后数据丢失的原因分析 当遇到SQL查询中使用`UNION ALL`操作符之后发生的数据丢失现象,通常并非由`UNION ALL`本身引起。实际上,`UNION ALL`会保留两个结果集中的所有记录,包括重复项。因此,在正常情况下不会导致任何数据行被丢弃。 然而,可能出现看似“数据丢失”的情形往往源于以下几个方面: #### 查询逻辑错误 如果在构建涉及多个子查询的复杂语句时未能正确处理条件或连接方式,则可能导致某些预期之外的结果过滤掉部分本应存在的记录[^1]。 ```sql -- 错误示范:假设这里存在逻辑上的失误使得一些应该返回的行未被选中 SELECT * FROM tableA WHERE conditionX UNION ALL SELECT * FROM tableB WHERE NOT EXISTS (conditionY); ``` #### 表结构差异 参与联合运算的不同表之间列的数量不匹配或是数据类型的兼容性问题也可能引发异常行为。即使表面上看不出来明显的报错提示,但在实际执行过程中却影响到了最终输出的内容完整性[^2]。 ```sql -- 假设tableC有一列额外的timestamp而其他表没有此属性 SELECT id,name,value FROM tableD UNION ALL SELECT id,name,value,created_at AS timestamp -- 这里可能会因为列数不同而导致问题 FROM tableC; ``` #### 排序与分页的影响 有时为了优化性能会对整个结果集应用ORDER BY加上LIMIT之类的限制条款;如果不小心设置了不当参数的话,确实会造成特定范围内的条目无法显示出来,给人一种数据遗失的感觉[^3]。 ```sql WITH combined_data AS ( SELECT col1,col2,... FROM sourceTable1 UNION ALL SELECT col1,col2,... FROM sourceTable2 ) SELECT * FROM combined_data ORDER BY some_column DESC LIMIT 10; -- 如果总数不足10条则后面的部分自然就看不见了 ``` ### 解决方案建议 针对上述提到的各种潜在因素,可采取如下措施加以预防和修正: - **仔细审查SQL语法**:确保各个组成部分之间的关系表达清晰无歧义,并且对于涉及到JOIN的地方特别留意其作用机制以及所附加的约束条件是否合理。 - **统一各表定义**:提前确认好待组合对象间的关键字段数目一致性和类型一致性,必要时可通过CAST()函数转换目标域格式以达成一致化标准。 - **谨慎设置排序/分页选项**:除非绝对需要,否则尽量避免直接给最外层包裹一层带有TOP N或者FETCH FIRST n ROWS ONLY这样的限定字句,转而在获取全量后再做进一步筛选更为稳妥可靠。 最后值得注意的是,虽然题目提及了Hive环境下LEFT JOIN带来的挑战,但这并不意味着相同模式下的`UNION ALL`也会遭遇同样的困扰。两者属于不同类型的操作符,适用场景也有所区别,故应当分别对待各自面临的具体难题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值