0

0

java的主体函数怎么设置

WBOY

WBOY

发布时间:2023-05-03 19:22:05

|

1109人浏览过

|

来源于亿速云

转载

下面是主体控制函数和一些公用方法。包括 抛异常,打日志。扩展,遍历。设置方法模型路径。获取模型(之前必须设置才可以获取不然抛异常)判断(数据)。

修正

(function(window,undefined){  var_toString = {}.toString,  _is,  _writeScript,  _listUrl,  _scriptMap = {  method_url : {},//method --> url <method : url ><1 : 1 >  url_method : {},//url --> method <url : [method,method] ><1 : n >  visited : {},  writted : {},  wait_write:[]  },  _readyFnx = [],  alfred = function(){//自己单独使用也可以。象jquery  alfred.ready.apply(window,arguments);  };  //私有函数开始  _is = function(it,type){//复杂的可以自己进行设置。正则匹配。  returntype.test(_toString.call(it).toLowerCase());  };  _waitReady = function(){  //等结束。如果结束了。直接跳出循环。其实就是利用JS的这个特性。  if(document.readyState != "loaded" &&document.readyState != "complete")  {  vartime = setTimeout(arguments.callee,0);  return;  }  clearTimeout(time);  }  _checkReady = function(){  //处理参数  for(vari=0;i<arguments.length;i++)  {  _readyFnx.push(arguments[i]);  }  varcallback = _readyFnx.shift();  //支持高级事件的  if(document.addEventListener)  {  document.addEventListener("DOMContentLoaded",function(){  _waitReady();  document.removeEventListener("DOMContentLoaded",arguments.callee,false);  callback.apply(window,_readyFnx);  });  returnthis;  }  //支持事件则用事件处理 IE  if(document.attachEvent)  {  document.attachEvent( "onreadystatechange", function(){  _waitReady();  document.detachEvent( "onreadystatechange",arguments.callee);  callback.apply(window,_readyFnx);  });  returnthis;  }  //不支持的则看不在 iframe 下时候的特殊属性。看 JSCRIPT MSDN。  if(document.documentElement.doScroll &&window == window.top)  {  try {  document.documentElement.doScroll("left","top");  }  catch(e)  {  setTimeout(arguments.callee, 0);  return;}  callback.apply(window,_readyFnx);  returnthis;  }  };  _listUrl = function(){  varl = _scriptMap.visited,i;  //对我们的URL 进行筛选 。主要防止多次添加访问过的依赖库。  for(i inl){  if(!_scriptMap.writted[i])  {  _scriptMap.wait_write.push(i);  }  }  _scriptMap.wait_write.reverse();  _writeScript();  };  _writeScript = function(){  //写入我们的JS 了。  varhead = document.getElementsByTagName("head").item(0),len = _scriptMap.wait_write.length;  for(vari;_scriptMap.wait_write.length&&(i=_scriptMap.wait_write.shift());) {  varscript = document.createElement("script"),  url = i || "";  script.setAttribute("async",true);//高级浏览器支持HTML5特性  script.setAttribute("type","text/javascript");  script.setAttribute("src",url);  head.appendChild(script);  _scriptMap.writted[url] = true;//这里无所谓,只要有这个URL就可以  };  };  alfred.extend = function(){  vardeep = false,  len,  options, name, src, copy, copyIsArray, clone,  target = arguments[0] || {},  i = 1;  len = arguments.length;  if(!len)  {  returnthis;  }  if(alfred.isBoolean(target))  {  deep = arguments[0];  to = arguments[1];  i = 2;  }  if(!(alfred.isObject(target) || alfred.isFunction(target))) {  target = {};  }  if(len = i)  {  target = this;  --i;  }  for(;i<len;i++) {  if((options=arguments[i])!==null)  {  for(name inoptions) {  copy = options[name];  src = target[name];  if(src){throw"Becareful : you are rewrite the "+_handle+"."+name+"!"}  if(copy===target) {continue}  if(deep &&copy; &&(alfred.isObject(copy) || (copyIsArray = alfred.isArray(copy))))  {  if(copyIsArray)  {  copyIsArray = false;  clone = src &&alfred.isArray(src) ? src : [];  }  else {  clone = src &&alfred.isObject(src) ? src : [];  }  target[ name ] = alfred.extend( deep, clone, copy );  }  elseif( copy !== undefined )  {  target[name] = copy;  }  }  }  }  };  alfred.isNumber = function(it){return_is(it,/^[object number]$/)};  alfred.isString = function(it){return_is(it,/^[object string]$/)};  alfred.isFunction = function(it){return_is(it,/^[object function]$/)};  alfred.isObject = function(it){return_is(it,/^[object object]$/)};  alfred.isArray = function(it){return_is(it,/^[object array]$/)};  alfred.isBoolean = function(it){returntypeofit ==='boolean'};  alfred.isDom = function(it){return_is(it,/^[object htmlw+]$/)};  alfred.extend({  author : "alfred",  version : 1.01,  global : window,  doc : window.document,  reset : function(it){alfred.global[it]=alfred;},  log : function()  {  if(window.console &&console.log)  {  returnconsole.log.apply(window,arguments)  }  },  error : function(name,value)  {  throw{"name":name,"message":value};  },  require : function(method)  {  varm2u = _scriptMap.method_url,  u2m = _scriptMap.url_method,  r;  if(!(m2u[method])){throw"Error : you need setMethod first"}  if(!_scriptMap.visited[m2u[method][0]] &&!_scriptMap.writted[m2u[method][0]]) {  //haven't be visited or write  _scriptMap.visited[m2u[method][0]] = true;  //use an beautiful code in here  for(; m2u[method][1].length &&(r=m2u[method][1].shift());)  {  alfred.require(r);  }  _listUrl();  }  },  setMethod : function(url,method,rely)  {  vari, method = alfred.isArray(method)? method:[method],  rely = alfred.isArray(rely)?rely:[rely];  if(url &&!_scriptMap.url_method[url]){  _scriptMap.url_method[url] = method;   for(;method.length&&(i=method.shift());) {  _scriptMap.method_url[i] = {"0" : url, "1" : rely};  }  returnthis;  }  throw"Error : you are setMethod in an old method";  },  ready : function(){  _checkReady.apply(window,arguments);  },  each : function(arg,callback){  for(vari inarg){  if(arg[i])  {  callback.call(arg[i],i);  }  }  returnarg;  }  });  window.alfred = alfred;  })(window)

用的时候先引入这个文件。然后需要类似这样设置

alfred.setMethod("basic.js",["alfred","alfred.global","alfred.doc","alfred.reset","alfred.log","alfred.isNumber",  "alfred.isFunction","alfred.isArray","alfred.isObject","alfred.isString","alfred.isBoolean",  "alfred.require","alfred.setMethod","alfred.extend"],[]);

这样设置了以后就可以告诉下面的JS 我已经提供了这些方法。随意alfred.require("alfred.reset"); 就可以把文件拉进页面注册好。

页面内是这样的。

<!DOCTYPE html> <html> <head> <title> </title> </head> <body> <script type="text/javascript" src="base.js"></script> <script type="text/javascript" src="deps.js"></script> <script type="text/javascript"> alfred.reset("$");  $.require("alfred.dom");  $(function(){  vara = $.dom("<div id='test' style='width:200px;height:200px;background:red;'> adf</div>");  $.dom("body").prepend(a);  })  </script> </body> </html>

alfred.reset 是为了方便自己设置方法名字。这样我们几乎可以象jquery一样使用了。

立即学习Java免费学习笔记(深入)”;

MusicAI
MusicAI

AI音乐生成工具

下载

alfred.reset("$");

$.require("alfred.dom");

$.dom("div a span:first-child").append("hello alfred");

就 可以这样用了。

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 4.4万人学习

C# 教程
C# 教程

共94课时 | 11.3万人学习

Java 教程
Java 教程

共578课时 | 82.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号