当前位置:首页 > 代码片段 > 正文内容

require基础使用、加载解决思路、下载(含require-css)

Z先生9年前 (2016-04-11)代码片段9303

1、app.js(记得所有的JS都要做映射,包括外部引用的,比如:地图、微信等API的JS)

require.config({
	paths: {
		"require-css": "require.css",
		"jquery": "jquery.min",
		"form": "jquery.form",
		"layer": "layer/layer",
		"xinda": "xinda.js",
		"upload": "xinda/uploader",
		"weixin": "http://res.wx.qq.com/open/js/jweixin-1.0.0.js",
		"map": "http://webapi.amap.com/maps?v=1.3&key=xxxxxxxxxxxxxxxxxxxxx"
	},
	shim: {
		"*": {
			deps: ["require-css", "css!../css/base.css"]
		},
		"form": {
			deps: ["jquery"]
		},
		"layer": {
			deps: ["jquery"]
		}
	}
});
require(["jquery", "layer"], function() {
	$(function() {
		typeof(init) == "function" ? init(): console.log("no init function");
	});
});

2、HTML页面代码(头部)

<script data-main="static/default/js/app" src="static/default/js/require.js" defer async="true"></script>

3、HTML代码(底部)

<script>
	var marker, map;

	function addMarker(lat, lng) {
		if (marker) {
			marker.setMap(null);
			marker = null;
		}
		marker = new AMap.Marker({
			icon: "http://webapi.amap.com/theme/v1.3/markers/n/mark_r.png",
			position: [lng, lat]
		});
		marker.setMap(map);
	}

	window.init = function() {
		//地图
		require(["map"], function() {
			//地图初始化
			if (!map) {
				map = new AMap.Map("allmap", {
					resizeEnable: true,
					zoom: 15
				});
			}
			//设置中心点
			//var area = $("#area").val();
			map.setCity("汉中");
			//描点事件
			map.on('click', function(e) {
				var lng = e.lnglat.getLng(),
					lat = e.lnglat.getLat();
				$('#map_annotation').val(lng + "," + lat);
				$("input[name='biz[map_lng]']").val(lng);
				$("input[name='biz[map_lat]']").val(lat);
				addMarker(lat, lng);
			});
		}, function(err) {
			console.log(err);
		});
	}
</script>


具体文件,根据具体项目调整,关键思路是init()函数,先在app.js预加载,页面中所有的JS,通过init()函数执行,如果不存在,就不去执行了。


好吧,最后是下载地址了:require.zip


标签: 页面优化
分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。